写入文件:流和写作者之间的区别

时间:2011-12-11 19:29:11

标签: java file stream writer

嗨我对用于在文本文件中写入的流有点混淆

我见过一些例子:

使用PrintWriter流

PrintWriter out = new PrintWriter(new BufferedWriter(new FileWriter(fname)));

out.println(/*something to write*/);

out.close();

而不是使用:

PrintStream out = new PrintStream(new FileOutputStream(fname));

out.println(/*something to write*/)

但是哪个区别?两个文件都写在同一个文件中?

3 个答案:

答案 0 :(得分:1)

PrintWriter用于写入文本,而PrintStream用于写入数据 - 原始字节。 PrintWriter可能会更改字节的编码,以便更轻松地处理文本,因此可能会损坏您的数据。

答案 1 :(得分:1)

PrintWriter是Java 1.1的新增内容;它比PrintStream类更有能力。您应该使用PrintWriter而不是PrintStream,因为它使用默认编码方案将字符转换为基础OutputStream的字节。 Java 1.1中不推荐使用PrintStream的构造函数。实际上,整个类可能会被弃用,除非它会为使用System.outSystem.err的代码生成大量编译警告。

答案 2 :(得分:0)

PrintWriter扩展了类Writer,一个被认为是写字符的类,而PrintStream实现了OutputStream,这是一个更通用输出的接口。