美文网首页
Java中的IO操作(1)

Java中的IO操作(1)

作者: 仲伦 | 来源:发表于2019-10-24 19:39 被阅读0次

1、概述

在上一节中,我们系统学习了File类,并且已经知道File类的实例用于表示文件或目录的路径名

虽然我们可以通过File实例来访问文件或目录的元数据,甚至可以创建、删除文件或目录,但是,我们却不能通过File实例来访问文件中存储的内容,本节主要研究通过流来读写数据。

为了能够 读取文件中的内容 或者 向文件中写入内容 ,就需要用到文件输入流或文件输出流,本节将系统讲解通过完成对文件内容的读取和写入操作。

但千万不要认为我们只能从文件中读取数据或向文件中写入数据,在网络编程部分我们将会学习如何通过 Java 程序从网络上读取数据和向网络发送数据。

2、流

在 Java 语言中,将够 读取数据 或者 写出数据 的对象抽象为

类似于生活当中的 水管 可以在 水管定向移动,正如 数据 可以在 中定向移动。

在 Java 传统的 IO 体系种,所有的 流 对应的类型都扩展自四个抽象类:

四个抽象基类

其中的 InputStreamOutputStream 的子类表示字节流,ReaderWriter的子类则表示字符流。

这里所提及的 Stream 一词均表示,请不要与 java.util.stream.Stream 接口混为一谈。

3、分类

Java中传统的I/O体系可以按照不同的方式对流进行分类:

  • 按照流中数据的流向来分类,可以分为 输入流输出流
    • 用于实现从外部读取数据到当前程序的流被称作输入流
    • 用于实现从当前程序中向外部输出数据的流被称作输出流
  • 按照流处理的数据单元来分类,可以划分为 字节流字符流
    • 如果某个流在读取或写入数据时以字节为单位,则该流属于字节流
    • 如果某个流在读取或写入数据时以字符为单位,则该流属于字符流
      • 这里纠正一下个错误,通过字符流读写字符数据时,一个字符未必就占两个字节
      • 一个字符有可能是1个字节,也可能是2个、3个、4个字节,这取决于字符编码
      • 《疯狂Java讲义》上的说法是不恰当的
  • 按照流的功能来分类,可以分为 节点流包装流
    • 直接数据节点中读取数据或向数据节点中写入数据的流被称作节点流
      • 数据节点可以是磁盘上的文件或其它数据源(比如键盘输入)
      • 节点流都比较原始,仅用于实现数据的读取和写入,通常不具备其它功能
    • 用于从其它流中读取数据,并实现其它流所不具备的功能的流,被称作包装流
      • 包装流也被称作 转换流 或 处理流 或 过滤流
      • 包装流通常会提供它内部所包装的流不具备的功能
      • 包装流内部所处理的流(也称作所过滤的流)被称作底层支持流

节点流 和 包装流 的关系如下图所示:

节点流和包装流

这里的 IO节点 就是前文所提到的 数据节点,它可以是 磁盘上的文件、键盘输入、控制台输出、网络 等。

相关文章

  • Java中的IO操作(1)

    1、概述 在上一节中,我们系统学习了File类,并且已经知道File类的实例用于表示文件或目录的路径名。 虽然我们...

  • 05-Java中的IO与NIO面试题(15题)

    1、Java 中 IO 流? Java 中 IO 流分为几种?按照流的流向分,可以分为输入流和输出流;按照操作单元...

  • Scala编程基础29:Scala读写操作

    Scala进行文件读写操作,都是直接调用的Java中的IO类:java.io.File。 1.Scala写文件 下...

  • java IO 流

    1.什么是java IO?通过java一些列文件操作的API,对文件进行读取,写入等操作。即为java IO;这里...

  • Java的IO操作

    Java的IO操作分为磁盘IO和内存流IO。 1、磁盘IO:FileInputStream和FileOutputS...

  • Java常用包的主要作用

    java.io io流相关操作java.nio 新io操作java.lang 核心功能包,线程,System,基本...

  • java中的IO

    Java中的IO IO流也是种对象,Java中的一切都是对象。 IO操作的目标:从数据源中读取数据,以及将数据读写...

  • java IO流操作

    什么是IO流? Java中I/O操作主要是指使用java.io包下的内容,进行输入、输出操作。输入也叫做读取数据,...

  • 06-JAVA IO流

    一、IO流 Java中I/O操作主要是指使用java.io包下的内容,进行输入、输出操作。输入也叫做读取数据,输出...

  • 深入浅出MappedByteBuffer

    [TOC] 前言 java io操作中通常采用BufferedReader,BufferedInputStream...

网友评论

      本文标题:Java中的IO操作(1)

      本文链接:https://www.haomeiwen.com/subject/axgdvctx.html