PrintStream和PrintWriter的区别简介

PrintStream和PrintWriter的区别简介

本文主要介绍PrintStream和PrintWriter的区别,有一定的参考价值,有需要的朋友可以参考一下。

PrintStream和PrintWriter的API差不多,都可以输出各种形式的数据,构造方法也差不多。

PrintWriter还有一个参数来接受Writer。

API比较:

那么,它们之间有什么区别呢?来自堆栈流

主要意思是两个类的功能基本相同。PrintStream能做的PrintWriter也能实现,而且PrintWriter的功能更强大。但由于PrintWriter出现较晚,更早的System.out是由PrintStream实现的,所以PrintStream并没有因为兼容性而被放弃。

两个类最大的区别是PrintStream在输出字符转换成字节时使用系统默认的编码格式,这样当数据传输到另一个平台,另一个平台使用另一种编码格式进行解码时,就会出现问题和不可控因素。而PrintWriter可以在Writer传入时由程序员指定字符转换成字节时的编码格式,这样兼容性和可控性会更好。

下面的程序显示了两个对象PrintStream和PrintWriter如何处理相同的输出目的。该程序将在屏幕上显示四个字符“简体中文”:

StreamWriterDemo.java

只打包onlyfun.caterpillar

导入Java . io . *;

公共类StreamWriterDemo

{

公共静态void main(String[] args) {

尝试{

Byte [] sim={(字节)0xbc,(字节)0xf2,//Jane

(字节)0xcc,(字节)0xe5,//body

(字节)0xd6,(字节)0xd0,//

(字节)0xce,(字节)0xc4

}

//文本

InputStreamReader InputStreamReader=new InputStreamReader(new bytearray inputstream(sim), GB 2312 );

PrintWriter PrintWriter=new PrintWriter(new output streamwriter(system . out, GB 2312 ));

PrintStream PrintStream=new PrintStream(system . out,true, GB 2312 );

int in

while((in=inputstreamreader . read())!=-1) {

printwriter . println((char)in);

print stream . println((char)in);

}

inputstreamreader . close();

printwriter . close();

printstream . close();

}

catch(ArrayIndexOutOfBoundsException e){

e . printstacktrace();

}

catch(IOException e) {

e . printstacktrace();

}

}

}

总结

这就是本文中关于PrintStream和PrintWriter的区别。希望对你有帮助。感兴趣的朋友可以继续参考本站其他相关话题。如有不足之处,欢迎留言指出。感谢您对本网站的支持!

PrintStream和PrintWriter的区别简介