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);

 

posted @ 2020-12-21 13:53  xlfdy  阅读(38)  评论(0)    收藏  举报