在Java中的输入流与输出流中还有许多流类。这些流包括管道流、ByteInputStream和ByteOutputStream、System.in和System.out、还有打印流等等
![Java高级[6]:输入输出流中的其他流类](http://www.52ij.com/uploads/allimg/160402/213Q63K3-0.jpg)
前期准备工作(包括相关工具或所使用的原料等)
Eclipse
JDK
管道流
管道流主要用于连接两个线程间的通信。管道流也分为字节流(PipedInputStream、PipedOutputStream)和字符流(PipedReader、PipedWriter)。
一个PipedInputStream对象必须和一个PipedOutputStream对象相连接产生一个管道。其中
PipedInputStream可以读管道中的数据,PipedOutputStream可以向管道中写数据
下面,我们来看一下,管道流的使用,代码及结果如下图中:
![Java高级[6]:输入输出流中的其他流类](http://www.52ij.com/uploads/allimg/160402/213QC5a-1.jpg)
![Java高级[6]:输入输出流中的其他流类](http://www.52ij.com/uploads/allimg/160402/213Q63529-2.jpg)
![Java高级[6]:输入输出流中的其他流类](http://www.52ij.com/uploads/allimg/160402/213Q63050-3.jpg)
![Java高级[6]:输入输出流中的其他流类](http://www.52ij.com/uploads/allimg/160402/213Q62949-4.jpg)
ByteArrayInputStream与ByteArrayOutputStr
ByteArrayInputStream是输入流的一种实现。它有两个构造方法,每个方法都需要一个字节数组来作为其数据源。
构造方法如下:
ByteArrayInputStream(byte[] buf);
ByteArrayInputStream(byte[] buf,int offset,int length);
ByteArrayOutputStream();
ByteArrayOutputStream(int);
如果程序在运行的过种中要产生一些临时文件,可以采用虚拟文件方式实现,上述两个类可以实现类似内存虚拟文件的功能。
下面,我们来看一下这两个类的使用。代码及结果如下:
![Java高级[6]:输入输出流中的其他流类](http://www.52ij.com/uploads/allimg/160402/213Q64O7-5.jpg)
System.in和System.out
System.in和System.out分别对应于键盘和显示器。in是用于该读取从键盘上输入的数据。System.out对应于显示器,属于PrintStream(打印流),将数据输出到显示器。
打印流
PrintStream类提供了一系列的print和println方法,可以实现将基本数据类型格式转换成字符串输出。
PrintStream有以下几个构造方法:
PrintStream(OutputStream out);
PrintStream(OutputStream out,boolean autoflush);
PrintStream(OutputStream out,boolean autoflush,String encoding);
IO包中提供了一个与PrintStream对应的PrintWriter类,有以下几个构造方法:
PrintWriter(OutputStream out);
PrintWriter(OutputStream out,boolean autoflush);
PrintWriter(Writer w);
PrintWriter(Writer w,boolean autoflush);
注意事项
对于打印流不再演示相应的事例,可以自行查找官方文档
经验内容仅供参考,如果您需解决具体问题(尤其法律、医学等领域),建议您详细咨询相关领域专业人士。作者声明:本教程系本人依照真实经历原创,未经许可,谢绝转载。- 评论列表(网友评论仅供网友表达个人看法,并不表明本站同意其观点或证实其描述)
-
