欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

java之io概述

程序员文章站 2022-03-22 14:13:33
...
Java 中使用 “流”(Stream) 的概念来描述数据。Java 中使用流对数据操作的类,位于 java.io 包下。

一、认识“流”(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.io