@linux1s1s
2015-12-14T17:11:35.000000Z
字数 1043
阅读 2030
Java
一张图来形象的理解一下:
输出流
这里文件和网络连接可以理解为ROM或者Intent,而程序可以理解为RAM,所以输入输出是相对于RAM来说的,因为运行时的程序在RAM中。
字节流
字节流是最底层的概念,为了方便操作和提高效率,封装了一层流操作,这就是处理流,比如常见的Buffered开头的和Data开头的流操作。
这张图基本解释清楚了I/O的整体概念,深色的类是基本的字节流,浅色的为处理流。
举个简单的例子作为最后的结尾:
public static void main(String[] args) throws IOException {
// 节点流FileOutputStream直接以A.txt作为数据源操作
FileOutputStream fileOutputStream = new FileOutputStream("a.txt");
// 过滤流BufferedOutputStream进一步装饰节点流,提供缓冲写
BufferedOutputStream bufferedOutputStream = new BufferedOutputStream(
fileOutputStream);
// 过滤流DataOutputStream进一步装饰过滤流,使其提供基本数据类型的写
DataOutputStream out = new DataOutputStream(bufferedOutputStream);
out.writeInt(3);
out.writeBoolean(true);
out.flush();
out.close();
// 此处输入节点流,过滤流正好跟上边输出对应
DataInputStream in = new DataInputStream(new BufferedInputStream(
new FileInputStream("A.txt")));
System.out.println(in.readInt());
System.out.println(in.readBoolean());
in.close();
}