`

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














-
分享到:
评论

相关推荐

    Java_IO完全总结

    #### 一、Java IO系统概述 Java IO系统是Java平台标准库中的一个重要组成部分,主要用于处理输入输出操作。Java IO系统主要包括两个包:`java.io`和`java.nio`(New IO),其中`java.io`提供了一系列基于流的I/O...

    java.io包讲解

    ### Java.io包详解 #### 一、概述 Java.io包是Java编程语言中非常重要的一个标准库,它提供了丰富的类和接口,支持多种输入/输出流的处理方式,包括文件I/O、网络通信等场景。Java.io包的核心设计思想是以流...

    java基础之IO流

    ### Java IO流基础知识点 #### 一、IO流概述 - **定义**:在Java中,IO流(Input/Output Streams)是用来处理输入输出的基本工具。流是一种有序的数据集合,通常涉及从源到目的地的数据传输过程。源可以是文件、...

    12.java-IO 的概述.md

    12.java-IO 的概述

    java jdk io包类详解

    ### Java JDK IO包类详解 #### 概述 Java平台提供的`io`包为开发者提供了访问文件系统、对象序列化等功能的基本输入输出能力。它主要包括字节流、字符流及对象流(字节流的包装类)。此外,还提供了一些基本的文件...

    Java.nio 与Java.io比较

    ### Java.io概述 Java.io包提供了系统级别的输入/输出操作,通过数据流来实现。数据流支持多种类型的数据,包括简单的字节、基本数据类型、本地化字符以及对象。在Java.io中,程序通过输入流读取来自源的数据,而...

    Java IO_NIO

    **Java NIO概述** Java NIO是在Java 1.4版本中引入的新IO模型,主要特点是其非阻塞特性。NIO的核心组件包括通道(Channel)、缓冲区(Buffer)和选择器(Selector)。通道是数据传输的途径,如文件通道、网络通道等...

    java IO 类层次图

    ### Java IO 类层次结构解析 #### 一、概述 Java IO(Input/Output)系统是Java平台中的一个重要组成部分,用于处理程序与外部设备之间的数据交换。Java IO系统提供了丰富的类来支持不同类型的输入输出操作,包括...

    java jsp IO包 教程 新手入门

    #### 二、Java I/O概述 Java中的I/O系统设计得非常灵活且强大,它将所有类型的输入/输出抽象成“流”的概念。流是一种有序的数据序列,可以是字节流也可以是字符流。Java提供了多种流来处理不同场景下的输入/输出...

    java IO流详解

    ### Java IO流详解 #### 一、流的概述与分类 在Java中,流是一种抽象概念,用于描述数据从一个地方传输到另一个地方的过程。它主要用于处理数据输入和输出,例如从磁盘读取文件、向网络发送数据或从键盘接收用户...

    java_io流的处理

    ### Java IO流处理详解 #### I/O流概述 在Java编程中,输入/输出(I/O)处理是一项核心技能,涉及从键盘读取数据、向屏幕输出数据、从文件读写数据以及在网络连接上进行读写操作。Java将这些不同的输入输出源抽象...

    java流IO总结

    ### Java IO流详解 #### 一、概述 Java的I/O操作主要涉及使用Java语言进行输入和输出操作。Java的所有I/O机制都是基于数据流来进行输入输出,这些数据流表示了字符或字节数据的流动序列。理解Java的I/O模型对于...

    Java IO

    ### Java IO概述 Java IO(输入/输出)是Java编程语言中用于处理各种形式的数据传输的核心部分。它涉及从文件系统、网络等不同资源中读取数据或将数据写入这些资源的过程。Java IO的设计采用了面向对象的方法,通过...

    java IO流学习笔记

    #### 五、IO流概述 在Java中,IO流用于处理输入/输出操作。根据数据单位的不同,可以分为字节流和字符流两大类。 - **字节流**:处理的数据单位是字节(8位),包括`InputStream`和`OutputStream`。 - **字符流**...

    javaIO流笔记

    #### 一、Java IO流概述 在Java中,输入/输出(Input/Output,简称IO)操作是程序与外部设备进行数据交换的重要方式。Java提供了强大的IO流处理类库,主要位于`java.io`包中。这些类库支持多种数据类型的操作,包括...

    JAVA中的IO流简介

    ### IO流概述 IO流主要分为两大类:字节流和字符流。字节流主要处理字节数据,而字符流则处理字符数据。这两种流类型都有输入和输出之分,分别由以下接口和类表示: - 字节流: - 输入:`InputStream` - 输出:`...

    java IO(下)

    **过滤流**(处理流)是在Java IO系统中的一个重要概念,它建立在已有的流对象之上,并为其添加了额外的功能或性能优化。与节点流不同,过滤流本身并不直接连接到数据源或目标,而是作为中间层,通过装饰器模式对底层...

Global site tag (gtag.js) - Google Analytics