Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/319.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 什么';这是Printwriter和OutputStream之间的区别_Java_File Io - Fatal编程技术网

Java 什么';这是Printwriter和OutputStream之间的区别

Java 什么';这是Printwriter和OutputStream之间的区别,java,file-io,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(); 然后我们有输出流 java.io.File f=new java.io.File("s.txt"); java.io.FileOutputStream o

首先,我们有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();
然后我们有输出流

 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();

有什么区别?

输出流
用于二进制数据。写入程序(包括
PrintWriter
)用于文本数据

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

PrintWriter
的另一个不同之处在于它抑制IO异常,就像
PrintStream
一样,它是与
PrintWriter
等价的二进制流,我从中提取了以下内容,类似于Jon所说的:

ServletOutputStream:
ServletResponse.getOutputStream()返回
a
ServletOutputStream
适用于在响应中写入二进制数据。servlet 容器不编码二进制数据,而是发送原始数据 事实就是这样

PrintWriter:
ServletResponse.getWriter()
返回发送 向客户端发送字符文本。
PrintWriter
使用该字符
getCharacterEncoding()
返回的编码。如果回答是 未指定字符编码,则默认为 字符编码