2013-07-12 67 views
3

是否有可能使用BufferedReader從文本文件中讀取,然後在緩衝讀取器正在讀取時,同時它還使用PrintWriter將讀取的行存儲到另一個txt文件中?BufferedReader然後寫入txt文件?

+0

是的,它肯定是可以的。我應該輸入一個答案嗎? –

+0

爲什麼不使用兩個'FileChannel'並使用'.transfer {From,To}()'? – fge

+0

@fge umm你介意提供一些關於如何使用它的例子嗎? –

回答

4

如果你使用的Java 7和要一個文件直接複製到另一個,這是非常簡單:

final Path src = Paths.get(...); 
final Path dst = Paths.get(...); 
Files.copy(src, dst); 

如果你想逐行讀出並再次寫入,搶srcdst上述同樣的方式,然後執行:

final BufferedReader reader; 
final BufferedWriter writer; 
String line; 

try (
    reader = Files.newBufferedReader(src, StandardCharsets.UTF_8); 
    writer = Files.newBufferedWriter(dst, StandardCharsets.UTF_8); 
) { 
    while ((line = reader.readLine()) != null) { 
     doSomethingWith(line); 
     writer.write(line); 
     // must do this: .readLine() will have stripped line endings 
     writer.newLine(); 
    } 
} 
+0

好的,謝謝。 :) –

0

是的。打開BufferedReader,然後創建PrintWriter。您可以在寫入作者時從流中讀取數據。

3

直接回答你的問題:

就可以了,你也可以用BufferedWriter將這樣做。

BufferedReader br = new BufferedReader(new FileReader(new File("Filepath"))); 
BufferedWriter bw = new BufferedWriter(new FileWriter(new File("Filepath"))); 
String l; 
while((l=br.readLine())!=null){ 

    ... do stuff ... 

    bw.write("what you did"); 

} 

bw.close();