io流

1、文本字节输入流FileInputStream:
FileInputStream类有两个构造方法。FileInputStream(File file) 传递一个File对象,来将实际文件进行连接;FileInputStream(String name) 传递一个表示路径的字符串,来将实际文件进行连接。
FileInputStream类还有两个常用方法。read() 从输入流读取一个字节,返回读取的一个字节的Ascall码(测试代码见附件1)。read(byte[] b) 一次读取一个字节数组,每次最多读取b.length个字节,返回写入到数组的字节长度(测试代码见附件2)
2、文本字节输出流FileOutputStream:
FileOutputStream类有两个构造方法。FileOutputStream(File file) 传递一个File对象,来将实际文件进行连接;FileOutputStream(String name) 传递一个表示路径的字符串,来将实际文件进行连接。
FileOutputStream类还有三个常用方法。write(len)需在使用read()后使用,因为write输出的是字节而不是字节个数。write(byte[] b) 将字节数组b的所有元素输出。write(byte[] b,0,len)将字节数组b中索引为0到len的值进行输出,比较常用,可避免值重复。
3、字节过滤输入流FilterInputStream和字节过滤输出流FilterOutputStream:
为了扩展基础字节流功能而创建的一个类,这里面用到了”装饰者模式“,装饰者模式简而言之就是可以通过(new DataOutputStream(new BufferedOutputStream(new FileOutputStream("1.txt"))))这种嵌套的方式给对象增添功能。
FilterInputStream主要子类为BufferedInputStream、DataInputStream、PushbackInputStream。
FilterOutputStream主要子类为BufferedOutputStream、DataOutputStream、PrintStream。
- BufferedInputStream类作用为让要被读取的字节输入流先一次性拉到缓存,再读取,减少与硬盘的io次数;同理,BufferedOutputStream则是把要被写入的字节流输出流先一次性拉到缓存,再写入。
- DataInputStream与DataOutputStream使用如下图:

- 字节回退流PushbackInputStream。在JAVA IO中所有的数据都是采用顺序的读取方式,即对于一个输入流来讲都是采用从头到尾的顺序读取的,如果在输入流中某个不需要的内容被读取进来,则只能通过程序将这些不需要的内容处理掉,为了解决这样的处理问题,在JAVA中提供了一种回退输入流(PushbackInputStream、PushbackReader),可以把读取进来的某些数据重新回退到输入流的缓冲区之中。
附件:
附件1
附件2
out.write(b,0,len);及read(byte[] b);


浙公网安备 33010602011771号