java之io概述
程序员文章站
2022-03-22 14:13:33
...
Java 中使用 “流”(Stream) 的概念来描述数据。Java 中使用流对数据操作的类,位于 java.io 包下。
一、认识“流”(Stream)
1、流,借用水流的概念。数据像水流一样在管道中传输。
2、流具有方向性。
相对于内存而言,流入内存称:InputStream,流出内存称:OutputStream
3、流中的数据使用时按无数据量格式(相对于某些数据传输协议,需要在报头写明要传输的数据的长度而言)、编码是最原始的二进制数据进行使用。
二、Java中流的分类
可以从不同的角度对流进行分类:
1.处理的数据单位不同,可分为:字符流,字节流
2.流的方向不同,可分为:输入流,输出流
3.功能(处理颗粒度)的不同,可分为:节点流,处理流
节点流:
节点流提供了对流的最原始的基本操作。是Java提供的最直接的操作文件,网络等的流。
例如
处理流:
“连接”在已存在的流(节点流或处理流)之上通过对数据的处理为程序提供更为强大的读写功能。对节点流(或处理流)进行一系列的包装。
例如
三、Java中的流概览
红色为抽象类
绿色为节点流(原始流),蓝色为处理流
java.io.InputStream
├⎯⎯⎯⎯⎯⎯ FileInputStream
├⎯⎯⎯⎯⎯⎯ PipedInputStream
├⎯⎯⎯⎯⎯⎯ ByteArrayInputStream
├⎯⎯⎯⎯⎯⎯ StringBufferInputStream
├⎯⎯⎯⎯⎯⎯ SequenceInputStream
├⎯⎯⎯⎯⎯⎯ ObjectInputStream
└⎯⎯⎯⎯⎯⎯ FilterInputStream
├⎯⎯⎯⎯ BufferedInputStream
├⎯⎯⎯⎯ DataInputStream
├⎯⎯⎯⎯ LinumberInputStream
└⎯⎯⎯⎯ PushbackInputStream
java.io.OutputStream
├⎯⎯⎯⎯⎯⎯ FileOutputStream
├⎯⎯⎯⎯⎯⎯ PipedOutputStream
├⎯⎯⎯⎯⎯⎯ ByteArrayOutputStream
├⎯⎯⎯⎯⎯⎯ ObjectOutputStream
└⎯⎯⎯⎯⎯⎯ FilterOutputStream
├⎯⎯⎯⎯ BufferedOutputStream
├⎯⎯⎯⎯ DataOutputStream
└⎯⎯⎯⎯ PrintStream
java.io.Reader
├⎯⎯⎯⎯⎯⎯ CharArrayReader
├⎯⎯⎯⎯⎯⎯ StringReader
├⎯⎯⎯⎯⎯⎯ PipedReader
├⎯⎯⎯⎯⎯⎯ InputStreamReader ⎯⎯⎯⎯⎯⎯⎯⎯⎯ FileReader
├⎯⎯⎯⎯⎯⎯ BufferedReader ⎯⎯⎯⎯⎯⎯⎯⎯⎯ LineNumberReader
└⎯⎯⎯⎯⎯⎯ FilterReader ⎯⎯⎯⎯⎯⎯⎯⎯⎯ PushbackReader
java.io.Writer
├⎯⎯⎯⎯⎯⎯ CharArrayWriter
├⎯⎯⎯⎯⎯⎯ StringWriter
├⎯⎯⎯⎯⎯⎯ PipedWriter
├⎯⎯⎯⎯⎯⎯ OutputStreamWriter ⎯⎯⎯⎯⎯⎯⎯⎯⎯ FileWriter
├⎯⎯⎯⎯⎯⎯ BufferedWriter
└⎯⎯⎯⎯⎯⎯ FilterWriter
引用:
http://www.cnblogs.com/shitouer/archive/2012/12/19/2823641.html
-
转载请注明
原文出处: http://lixh1986.iteye.com/blog/2333086
-
一、认识“流”(Stream)
1、流,借用水流的概念。数据像水流一样在管道中传输。
2、流具有方向性。
相对于内存而言,流入内存称:InputStream,流出内存称:OutputStream
3、流中的数据使用时按无数据量格式(相对于某些数据传输协议,需要在报头写明要传输的数据的长度而言)、编码是最原始的二进制数据进行使用。
二、Java中流的分类
可以从不同的角度对流进行分类:
1.处理的数据单位不同,可分为:字符流,字节流
2.流的方向不同,可分为:输入流,输出流
字节流 | 字符流 | |
输入流 | (abstract class) java.io.InputStream | (abstract class) java.io.Reader |
输出流 | (abstract class) java.io.OutputStream | (abstract class) java.io.Writer |
3.功能(处理颗粒度)的不同,可分为:节点流,处理流
节点流:
节点流提供了对流的最原始的基本操作。是Java提供的最直接的操作文件,网络等的流。
例如
// 直接从文件中读取或往文件中写入字节流。 FileInputStream FileOutputStream // end
处理流:
“连接”在已存在的流(节点流或处理流)之上通过对数据的处理为程序提供更为强大的读写功能。对节点流(或处理流)进行一系列的包装。
例如
// 1、提供带缓冲的读写,提高了读写的效率。 BufferedInputStream BufferedOutputStream // 2、提供了读写Java中的基本数据类型的功能。 DataInputStream DataOutputStream // 3、使用举例 BufferedReader in = new BufferedReader(new InputStreamReader(System.in)); Writer out = new BufferedWriter(new OutputStreamWriter(System.out)); //end
三、Java中的流概览
红色为抽象类
绿色为节点流(原始流),蓝色为处理流
java.io.InputStream
├⎯⎯⎯⎯⎯⎯ FileInputStream
├⎯⎯⎯⎯⎯⎯ PipedInputStream
├⎯⎯⎯⎯⎯⎯ ByteArrayInputStream
├⎯⎯⎯⎯⎯⎯ StringBufferInputStream
├⎯⎯⎯⎯⎯⎯ SequenceInputStream
├⎯⎯⎯⎯⎯⎯ ObjectInputStream
└⎯⎯⎯⎯⎯⎯ FilterInputStream
├⎯⎯⎯⎯ BufferedInputStream
├⎯⎯⎯⎯ DataInputStream
├⎯⎯⎯⎯ LinumberInputStream
└⎯⎯⎯⎯ PushbackInputStream
java.io.OutputStream
├⎯⎯⎯⎯⎯⎯ FileOutputStream
├⎯⎯⎯⎯⎯⎯ PipedOutputStream
├⎯⎯⎯⎯⎯⎯ ByteArrayOutputStream
├⎯⎯⎯⎯⎯⎯ ObjectOutputStream
└⎯⎯⎯⎯⎯⎯ FilterOutputStream
├⎯⎯⎯⎯ BufferedOutputStream
├⎯⎯⎯⎯ DataOutputStream
└⎯⎯⎯⎯ PrintStream
java.io.Reader
├⎯⎯⎯⎯⎯⎯ CharArrayReader
├⎯⎯⎯⎯⎯⎯ StringReader
├⎯⎯⎯⎯⎯⎯ PipedReader
├⎯⎯⎯⎯⎯⎯ InputStreamReader ⎯⎯⎯⎯⎯⎯⎯⎯⎯ FileReader
├⎯⎯⎯⎯⎯⎯ BufferedReader ⎯⎯⎯⎯⎯⎯⎯⎯⎯ LineNumberReader
└⎯⎯⎯⎯⎯⎯ FilterReader ⎯⎯⎯⎯⎯⎯⎯⎯⎯ PushbackReader
java.io.Writer
├⎯⎯⎯⎯⎯⎯ CharArrayWriter
├⎯⎯⎯⎯⎯⎯ StringWriter
├⎯⎯⎯⎯⎯⎯ PipedWriter
├⎯⎯⎯⎯⎯⎯ OutputStreamWriter ⎯⎯⎯⎯⎯⎯⎯⎯⎯ FileWriter
├⎯⎯⎯⎯⎯⎯ BufferedWriter
└⎯⎯⎯⎯⎯⎯ FilterWriter
引用:
http://www.cnblogs.com/shitouer/archive/2012/12/19/2823641.html
-
转载请注明
原文出处: http://lixh1986.iteye.com/blog/2333086
-
上一篇: Java IO流学习总结
下一篇: Java语言的十大特点(新手必备)