Java 什么';这是Printwriter和OutputStream之间的区别
首先,我们有PrintWriterJava 什么';这是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
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()返回aServletOutputStream
适用于在响应中写入二进制数据。servlet
容器不编码二进制数据,而是发送原始数据
事实就是这样
PrintWriter:ServletResponse.getWriter()
返回发送
向客户端发送字符文本。PrintWriter
使用该字符
getCharacterEncoding()
返回的编码。如果回答是
未指定字符编码,则默认为
字符编码