2011-08-17 2 views
2

Comment puis-je obtenir un BufferedWriter à partir d'un BufferedReader?BufferedReader to BufferedWriter

Je voudrais pouvoir faire quelque chose comme ceci:

BufferedReader read = new BufferedReader(new InputStreamReader(...)); 
BufferedWriter write = new BufferedWriter(read); 

Répondre

10

Vous pouvez utiliser les éléments suivants de Apache commons io:

IOUtils.copy(reader, writer); 

Site here

+0

Veuillez ajouter une référence à apache.commons pour parfaire cette réponse. – amit

+0

merci ... Je vais essayer maintenant ... – Smith

+0

Salut Buhb, il dit "la copie de la méthode est sous-définie pour la chaîne de caractères". Je pense que j'ai fait quelque chose de mal mais je ne sais pas quoi? – Smith

1

Si vous voulez pour savoir ce qui se passe:

Toutes les entrées du lecteur sont copiées e inputstream

Quelque chose de semblable aussi:

private final void copyInputStream(InputStreamReader in, OutputStreamWriter out)  throws IOException 
    { 
    char[] buffer=new char[1024]; 
    int len; 
    while ((len=in.read(buffer)) >= 0) 
     { 
     out.write(buffer, 0, len); 
     } 
    } 

Plus sur l'entrée et la sortie sur The Really big Index

+0

merci ... Je vais essayer maintenant ... – Smith

0

constructeur BufferedWriter n'est pas surchargé pour les lecteurs acceptent droit? ce que Buhb a dit était correct.

BufferedWriter writer = new BufferedWriter(
new FileWriter("filename_towrite"));  

IOUtils.copy(new InputStreamReader(new FileInputStream("filename_toread")), writer); 
writer.flush(); 
writer.close(); 
+0

il dit que la copie de la méthode est sous-définie pour la chaîne de caractères – Smith

0

Vous pouvez utiliser Canalisé Lire/Writers (link). C'est exactement ce pour quoi ils sont conçus. Pas sûr que vous pourriez les retaper sur un lecteur tampon existant que vous avez reçu. Vous devriez construire vous-même le lecteur buf délibérément.