BufferedReader然后写入txt文件?

8

能否使用BufferedReader从文本文件读取数据,同时在读取的过程中将读取到的行保存到另一个文本文件中,使用PrintWriter实现?


是的,当然可以。我应该把它作为答案输入吗? - Andrew Thompson
为什么不直接使用两个 FileChannel 并使用 .transfer{From,To}() 方法呢? - fge
@fge,您可以提供一些如何使用它的示例吗? - Winter Leong
取决于您使用的Java版本。如果是Java 7,它会更短。 - fge
@fge 嗯,我想我在使用7。 - Winter Leong
好的,另一个问题:你真的需要逐行阅读吗? - fge
4个回答

7
如果您使用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();
    }
}

4
直接回答你的问题:
你可以使用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();

1

0

可以的。打开BufferedReader,然后创建一个PrintWriter。你可以在写入writer的同时从流中读取。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接