java之io概述

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














-

猜你喜欢

转载自lixh1986.iteye.com/blog/2333086
今日推荐