I/O阶段性小结

来源:互联网 发布:用友软件待遇怎么样 编辑:程序博客网 时间:2024/06/04 20:13

JAVA  I/O流阶段性小结

前提概要:

刚刚接触I/O流的时候是在学校听专业课老师讲课,老师讲的特别简单,当时以为老师讲得简单所以该知识点就不重要,再加上自己当时不怎么喜欢敲代码,所有就放在了一边,到了暑假自己系统学习了才发现I/0特别重要(虽然目前还没怎么应用),所以特地写一个小总结,如有不足之处还请各位大神指出,我定及时改正。

大纲图

1.字节流(InputStream)

功能

构造器参数及如何使用

ByteArrayInputStream

允许将内存的缓冲区当作InputStream使用

缓冲区,字节将从中取出,作为数据源:将其与FilterInputStreamD对象相连以提供有用接口

StringBufferInputStream

 

String转换成InputStream

字符串,底层实现实际使用StringBuffer.作为数据源:将其与FilterInputStreamD对象相连以提供有用接口

FileInputStream

 

用于从文件中读取信息

字符串,表示文件名,文件或FileDescriptor对象

作为数据源:将其与FilterInputStreamD对象相连以提供有用接口

PipeInputStream

产生用于写入相关PipedOutputStreamde数据,实现管道化概念

PipedOutputStream

作为多线程中的数据源:将其与FilterInputStreamD对象相连以提供有用接口

SequenceInputStream

 

将两个或多个InputStream对象转换成单一InputStream

 

两个InputStream对象或者一个容纳InputStream对象容器的Enumeration

FilterInputStream

 

抽象类,作为“装饰器”的接口

 

 

2.字节流(OutputStream

功能

构造器参数及如何使用

ByteArrayOutputStream

在内存中创建缓冲区,所有送往“流”的数据都要放置在此缓冲区

缓冲区初始化尺寸,

用于指定数据的目的地:将其与FilterOutputStream对象相连以提供有用接口

FileOutputStream

 

用于将信息写至文件

字符串,表示文件名,文件或FileDescriptor对象

用于指定数据的目的地:将其与FilterOutputStream对象相连以提供有用接口

PipedOutputStream

任何写入其中的信息都会自动作为相关PipedInputStream的输出,实现管道化概念

PipedInputStream

指定用于多线程的数据的目的地:将其与FilterOutputStream对象相连以提供有用接口

FilterOutputStream

 

抽象类,作为“装饰器”的接口

 

 3.字符流(Reader)



4.字符流(Writer)


虽然说以上4个表列出了很多有关于I/O的知识点,但是有许多我目前还用不到,以后用到了会慢慢补上,接下来就一起来学习一下我们最常用的I/O流。直接上代码-.-

1.字节流读取文件内容


2.字节流写文件



3.字符流读取文件


4.字符流写文件


对比以上代码可以看出,不管是字节流还是字符流,都是以最简单的方法read(),writer().为基础,可以写单个字节(字符),可以读单个字符(字节)。同样也可以读(写)字符(字节)数组。(使用流后要记得关闭)

5.用字符流实现简单的文本复制


6.字节流实现复制功能


字符流其实不仅仅可以实现文本文件的复制,还可以实现压缩文件,图片等文件的复制,具体实现方式就不一一列出,步骤和文本文件的复制差不多

7.缓冲流:简单来说,缓冲流能进一步提高数据的传输速度,其中提供的readline()方法,如果该方法的返回值为null时,就说明到达了文件末尾


还有很多东西没学,目前正在一步一步探索中,以后各种博客会坚持更新,和广大编程爱好者共同进步。