【文件属性】:
文件名称:java IO章节的总结
文件大小:121KB
文件格式:DOC
更新时间:2015-01-07 10:04:04
java IO总结
IO从大的方向上分为字节流和字符流,包括四个抽象类:
1、输入:Reader, InputStream类型的子类(字符,字节)
2、输出:Writer, OutputStream类型的子类(字符,字节)
决定使用哪个类以及它的构造进程的一般准则如下(不考虑特殊需要):
第一,考虑最原始的数据格式是什么:是否为文本?
第二,是输入还是输出?
第三,是否需要转换流:InputStreamReader, OutputStreamWriter?
第四,数据来源(去向)是什么:文件?内存?网络?
首先是字节流:
InputStream的实现类(System.in返回一个输入流):
1)ByteArrayInputStream:ByteArrayInputStream的适配源是Byte数组,它有以下构造函数:
ByteArrayInputStream(byte[] buf) 创建一个 ByteArrayInputStream,使用 buf 作为其缓冲区数组。
ByteArrayInputStream(byte[] buf, int offset, int length) 创建 ByteArrayInputStream,用byte 数组的第 off 个位置先后的 len 个位置buf 作为其缓冲区数组。
2)FileInputStream:FileInputStream的适配源是File对象,构造函数有:
FileInputStream inFirst = new FileInputStream("test.txt");//默认工作站
File f = new File("test.txt");
FileInputStream inSecond = new FileInputStream(f);
3)PipeInputStream:通常用于进程间,构造函数有:
PipedInputStream()
PipedInputStream(PipedOutputStream out)直接连接到输出流
4)SequenceInputStream:这个类可以将几个输入流串联在一起合并为一个输入流,构造函数有:
SequenceInputStream(Enumeration e)枚举类型e中包含了若干个要被串联的输入流
SequenceInputStream(InputStream s1, InputStream s2)先读取s1中数据。再读s2的数据。
以上能够直接对数据进行读和写的流叫节点流,但是直接用这些来操作是比较麻烦的,而且一个字节一个字节的对文件处理,对硬盘的读取和存入对硬盘的损伤是很大的,因此需要对这些节点流进行包装,即外套一些处理流来进行操作,InputStream有以下处理流:
1) BufferedInputStream:带缓冲的输入流,构造函数有:
BufferedInputStream(InputStream in)
网友评论
- 总结的很不错,可是为什么java的接口不以I开头呢,还是C#做的好啊,便于识别
- 总结地不错,对我很有帮助
- 不太能看懂~~~