Printwriter和OutputStream之间有什么区别

ren*_*a-c 17 java file-io

首先,我们有PrintWriter

java.io.File f=new java.io.File("s.txt");

   java.io.PrintWriter out=new java.io.PrintWriter(f);

   out.print(5);

   out.print(7);

   out.close();
Run Code Online (Sandbox Code Playgroud)

然后我们有输出流

 java.io.File f=new java.io.File("s.txt");

 java.io.FileOutputStream out=new java.io.FileOutputStream(f);

   out.write(5);

   out.write(7);

   out.close();
Run Code Online (Sandbox Code Playgroud)

有什么不同?

Jon*_*eet 29

OutputStreams用于二进制数据.作家(包括PrintWriter)用于文本数据.

当您调用PrintWriter.write(int)单个字符时,您可能看不出具体情况的区别- 如果您使用的字符编码只是将字符映射到同一个字节,对于小于127的字符,则您会看到相同的字符结果.但如果你给它一个不同的编码,那么你会看到一个区别.

PrintWriter也有所不同,因为它抑制了IO异常 - 就像PrintStream二进制流当量的那样PrintWriter.