System类IO交互

版权声明:嘻嘻嘻嘻,I see you https://blog.csdn.net/qq_38317309/article/details/86351738

标准输出 public static final PrintStream out;
err 错误输出
in 标准输入设备
在system 源代码中系统输出 有两个常量 out和err都是printStream的对象
这两种输出有一个设计目的out 是用户能看见的内容,err是用户不能看见的内容。
这两种输出都没用。
err 会用红色的颜色输出。作为一个保留的属性提供存在。
由于system.out 是PrinitStream 类的实例化对象,而PrintStream又属于outputStream 的子类,可以用sysout.out为outputStream实例化,OutputStream的输出位置将变成屏幕输出。
OutputSream out= System.out; //是利用子类实例实现向上转型。
再用out.write(“世界和平”.getByte())方法输出,即完成了子类实例向上转型的过程。
抽象类不同子类针对于统一方法有不同的实现。

由于一次读取不完,最好的办法是引入内存操作流程。将数据保存在内存流,通过内存流一次性取出。
在内存流的操作中,换行不是“-1”需要用户自己处理换行的问题,换行不是文件结束。发现结尾是一个换行符。利用if(temp<data.length){break;}来对结尾的回车进行控制,system.in 不好用,system.in 是字节流,但是用来处理字符的话。如果不考虑中文,只考虑英文问题,那么则可以按照下面方法来while ((temp=input.read())!=-1){if(temp==’\n’){break; 表示当输入换行符的时候,从输入中断开}}实现了无长度限制的输入。但是对于中文却不行,一个也读不出来,只能读半个字符通过比较system.in 的支持度不高,英语还可以接受,利用内存流可以弥补一部分不足,但是对于中文来说,还不能支持。在IO中进行中文处理,最好是将所有数据保存在一起,才能保证不出现乱码。考虑使用中文,则使用字符输入输出流。

猜你喜欢

转载自blog.csdn.net/qq_38317309/article/details/86351738