java IO流的应用

流根据不同的概念可以分多种:

1:流的方向可以分为输入流和输出流

程序---------->文件(这样的流叫输出流)

文件---------->程序(这样的流叫输入流)

2:每次处理字节的长度分为字节流和字符流

字节流每次处理一个bytes

字符流每次处理一个字符(char)也就是两个bytes

3::根据功能可以分为节点流和处理流

节点流直接连接数据源,读入或者读出数据

由于节点流处理能力有限。处理流可以套在节点流上面增强处理功能

输入流:InputStream(基本字节流)  FileInputStream(专门处理文件的字节流),

输出流:OutputStream(基本字节流);FileOutputStream(专门处理文件的字节流);

字符流:Reader(基本字符流),Writer(基本字符流);

1:对文件进行处理  FileInputStream  FileOutputStream FileReader  FileWriter

2:对管道进行操作:PipedInputStream(字节输入流),PipedOutStream(字节输出流),PipedReader(字符输入流),PipedWriter(字符输出流)

      PipedInputStream的一个实例要和PipedOutputStream的一个实例共同使用,共同完成管道的读取写入操作。主要用于线程操作。

3:Buffered缓冲流:BufferedInputStream,BufferedOutputStream,BufferedReader,BufferedWriter,是带缓冲区的处理流,缓冲区的作用的主要目的是:避免每次和硬 盘打交道,提高数据访问的效率。

4:转化流:InputStreamReader/OutputStreamWriter,把字节转化成字符。

5;   数据流:DataInputStream,DataOutputStream

      数据流可以一次性输出或者输入整个数据避免了多次与硬盘打交道。提高了读写的效率,比如一次性读取一个8字节的Long类型数据或者一个4字节的Float类型等基本数据类型用数据流合适。

6:打印流:printStream,printWriter,一般是打印到控制台,可以进行控制打印的地方

7:对象流:ObjectInputStream,ObjectOutputStream,把封装的对象直接输出,而不是一个个在转换成字符串再输出。

8:序列化流:序列化流:SequenceInputStream。 对象序列化:把对象直接转换成二进制,写入介质中。

使用对象流需要实现Serializable接口,否则会报错。而若用transient关键字修饰成员变量,不写入该成员变量,若是引用类型的成员变量为null,值类型的成员变量为0.

猜你喜欢

转载自blog.csdn.net/liyingying111111/article/details/16844233
今日推荐