`
njuptsoz
  • 浏览: 91515 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

Java中的IO学习(一)

    博客分类:
  • Java
阅读更多

学习Java中的IO,首先要理解Java中IO的流模型。

 

所谓流,可以假想成河流,流的数据源,就是河流的发源地;流的单向性,就像河流的水流是单向的一样。

 

Java中的IO流,从两方面去分类。

  • 输入流和输出流
  • 节点流和处理流

输入流和输出流,就是程序和外部的数据源进行IO操作。这些数据源可以是可以是内存,文件,还可以是网络上的一个URL。

 

输入流和输出流的定义都是相对程序来说的,也就是输入流是从外部读取数据进入程序,然后由程序处理。输出流是从程序中输出的数据。

 

节点流和处理流。节点流是直接跟数据源连接的流,而处理流是用来装饰节点流的,是为使节点流有更多的功能。

 

Java中的IO流都源自下面的四个抽象类:

 

IO流 输入流 输出流
字节流 InputStream OutputStream
字符流 Reader Writer

 

这就是Java中IO的基本概念。

 

对于上面的字节流和字符流,他们的区别就在于字节流会以字节的形式来处理数据,而字符流会以字符的形式来处理数据。

 

JVM中统一使用Unicode来编码字符。

 

这样,我们就可以开始更进一步的学习Java IO流了。

 

可以这样子思考:

先学习字节流的输入流,这样相应的输出流就相应的学习了;

后学习字符流的输入流,这样相应的输出流就也就相应的学习了;

再学习一些另外的流。

 

 

对于字节流的输入流,就是 InputStream的抽象类向下延伸。

 

因为数据源可以在在文件中,在内存中。

所以,一般的字节输入流有 FileInputStream、ByteArrayInputStream 等方法。操作的也是相应的数据源。

至于相应的主要函数,可以从JDK中了解。

 

因此,对应的,就有字节输出流的 FileOutputStream、ByteArrayOutputStream。

 

 

而对于字符流的输入流,就是 Reader的抽象类的向下延伸。

 

同样的,数据源可以在文件中,在内存中。

因此,一般的字符输入流有 FileReader、CharArrayReader等方法。

输出流也相对应。

 

总的来看,字节流和字符流也是对应的。

 

但是这里要提出,字符流中还有一个节点流,那就是 StringReader ,因为String就是字符窜。

 

现在是了解了节点流。下面是处理流。

 

所谓处理流,就是不直接连接到数据源,而是对连接数据流的节点流进行装饰,使得流能提供更多更好的功能。

 

常见的处理流有(以下的类如果没有写,就代表无此类,或者已不适用):

  • 缓冲流。BufferedReader、BufferedWriter、BufferedInputStream、BufferedOutputStream。
    这种流是就是为增加了缓冲功能,提高的IO效率。
  • 字节流转为字符流。 InputStreamReader,InputStreamWriter,当然,可以在创建此类的时候设置字符编码。
  • 对象序列化流。ObjectInputStream、ObjectOutputStream。
  • 各种类型数据的输入输出。DataInputStream、DataOutputStream。
  • 行流。LineNumberReader;LineNumberInputStream
  • 打印流。PrintWriter;PrintOutputStream。

 

分享到:
评论

相关推荐

    JAVA_IO流学习总结

    JAVA_IO流学习总结

    《JAVA_IO流学习总结》

    Java IO流是Java平台核心特性之一,它负责在程序与外部资源之间传输数据。这个概念在Java编程中至关重要,因为它提供了处理输入(读取)和输出(写入)的机制,无论是从键盘、文件、网络还是其他数据源。在本文中,...

    java IO流学习笔记

    在进行Java IO流的学习过程中,异常处理是非常重要的一个方面。本节将详细介绍如何在Java中处理异常,并结合具体的IO流操作进行说明。 #### 一、异常处理 在Java中,异常处理主要通过`try-catch-finally`语句来...

    Java-Io流,练习

    通过运行这些示例,你可以直观地理解IO流的工作原理,并学习如何在实际项目中运用。 总结来说,Java的IO流是一个庞大且重要的主题,涵盖了数据的输入、输出、缓冲、转换等多个方面。对于初学者而言,理解和掌握IO流...

    Java IO学习笔记+代码

    Java IO是Java编程语言中用于输入/输出操作的重要部分,它提供了一系列的类和方法来处理数据的读写,文件的创建、删除以及流的管理等。以下是对标题和描述中涉及的知识点的详细说明: 1. **文件对象的生成**: 在...

    java io流学习笔记1

    总之,Java IO流是Java编程中不可或缺的一部分,它提供了丰富的类和方法来处理各种输入输出任务。通过深入学习和理解IO流,开发者可以更好地掌握数据的读取、写入和传输,提升程序的效率和功能。同时,熟悉相关工具...

    java中IO流例子

    Java中的IO流是Java平台提供的一种处理输入输出数据的核心机制,广泛应用于文件读写、网络通信、数据转换等场景。IO流分为字节流(Byte Stream)和字符流(Character Stream),它们构成了Java IO系统的基础。 1. *...

    java-IO框架图

    例如,javaio.bmp和javaio2.bmp可能是两张展示IO框架图的图片,其中详细描绘了不同类之间的继承关系和使用场景,帮助开发者更好地理解和掌握Java IO系统。 总结一下,Java IO框架是Java平台不可或缺的一部分,它为...

    javaIO学习课件 很详细的讲解

    这个“javaIO学习课件”提供了非常详尽的教程,旨在帮助初学者和有经验的开发者深入理解Java I/O系统的工作原理和应用。 首先,我们来看一下IO_1.pdf,它可能涵盖了基础的I/O流概念。在Java中,I/O流被分为字节流和...

    彻底明白java的io系统

    Java的IO系统是Java编程中的核心部分,它允许程序与外部世界进行数据交换,包括读取文件、写入文件、网络通信以及设备交互...在学习过程中,不要怕复杂,每个小步都是一次进步,逐渐积累,你就能彻底明白Java的IO系统。

    java.io包讲解

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

    java.io 学习

    使用Date 类获取系统当前时间 Calendar类的使用 使用 Random 类的对象生成随机数 Collection 类的对象的使用 HashMap 对象以键和值的关系形式存储数据

    浅谈java之IO学习经验

    根据给定的信息,本文将对Java IO的基本概念及其在实际应用中的使用进行深入解析。文章主要探讨了Java中处理输入/输出(IO)的操作...希望读者能够通过本文的学习,掌握Java IO的核心原理并能够在实际项目中灵活运用。

    java中的IO流整理

    Java中的IO流是Java平台核心特性之一,它用于在各种数据源之间传输数据,包括文件、设备、网络连接等。IO流分为输入流(Input Stream)和输出流(Output Stream),按照处理的数据类型又可以分为字节流和字符流。本...

    java_IO学习代码

    在这个"java_IO学习代码"的压缩包中,我们很可能会找到一系列示例代码,帮助我们深入理解Java IO体系。 首先,让我们探讨一下Java IO的基本概念。Java IO模型基于流(Stream)的概念,流是一组有序的数据序列,可以...

    java_IO.rar

    Java IO(输入输出)是Java平台中的核心概念,主要用于数据的读取和写入操作。...通过这个教程,开发者不仅可以理解Java IO的基本概念,还能学习到如何在实际项目中高效地使用IO流进行数据交换,提升程序性能。

Global site tag (gtag.js) - Google Analytics