`

java io流类的功能概述

阅读更多
java io流的分类:

1、从io流的两大操纵数据的形式分类。input stream 、output stream

2、从io流的操纵的最细粒度分类。byte(stream)、char(Reader)。

3、从使用场景的角度分类。
过滤流的概念:

FilterInputStream :输入过滤流,此流的任何继承者都必须提供underlying input stream。
FilterOutputStream:输出过滤流,此流的任何继承着都必须提供数据输出的underlying output stream 。
类似的有:FilterReader,FilterWriter
其特殊之处: 关闭前,先刷新缓冲数据。(没搞懂sun 的公司的设计。既然不确定为缓冲流,为何这里这样实现)
  public void close() throws IOException {
	try {
	  flush();
	} catch (IOException ignored) {
	}
	out.close();
    }


缓冲流的概念:

BufferedInputStream
BufferedOutputStream
BufferedReader
BufferedWriter
缓存流的特点:可以提供一定程度的缓存,提高系统的稳定性和读写效率。

数据流的概念
DataInput
DataInputStream extends FilterInputStream
DataOutput
DataOutputStream extends FilterOutputStream
缓存流的特点:实现了对underlying byte stream 按照数据的类型读和写。比如:读取int,byte等。


内存流的概念
CharArrayReader extends Reader
CharArrayWriter extends Writer
ByteArrayInputStream extends InputStream
ByteArrayOutputStream extends OutputStream
内存流的特点:实现了对byte 和 char 的数组的流形式操作。


文件相关
FileInputStream extends InputStream
FileOutputStream extends OutputStream
FileReader extends InputStreamReader
FileWriter extends OutputStreamWriter
文件流的特点:与文件相关,直接从文件中读取或者输出到文件中。文件流的读写与平台有关系,比如:一个文件是否允许多个对象同时写或者同时读,或者读和写交叉等待。

字节字符转换流
OutputStreamWriter extends Writer
InputStreamReader extends Reader

特点:可以把从流中读取的byte流转换的字符流。比如文件操作中FileReader 和 FileWriter都继承了上述转换的流。

对象流
ObjectInput extends DataInput
ObjectInputStream  extends InputStream implements ObjectInput
ObjectOutput extends DataOutput
ObjectOutputStream extends OutputStream implements ObjectOutput
特点:是实现byte流和java Object对象之间的转换功能。


管道流
PipedInputStream
PipedOutputStream
PipedReader
PipedWriter

特点:实现两个线程之间的数据的传输。

可回溯流
PushbackReader extends FilterReader
PushbackInputStream extends FilterInputStream

特点:可以回溯,就是读取字符后发现情况,可以回写到缓冲区,然后在读。当然回溯到缓冲区的数据,不会回写到 underlying stream

随机文件读取
RandomAccessFile
特点:这是一个可以随机读取文件数据的api。 (这个文件的锁机制很重要,需要特别注意)


其他:
PrintStream extends FilterOutputStream
class PrintWriter extends Writer

all over
分享到:
评论

相关推荐

    java基础之IO流

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

    java IO流详解

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

    java io流-3.pdf

    - **6.1 过滤流类**:过滤流是在现有流的基础上添加额外功能的新流类型。 - **6.2 过滤流子类**:具体介绍了几种常见的过滤流子类,如`BufferedInputStream`、`BufferedOutputStream`等。 - **6.3 缓冲流**:通过...

    java IO 类层次图

    Java IO中的字节流类主要分为两大类:`InputStream`和`OutputStream`。它们是所有字节流类的基类,其他具体子类都直接或间接地继承自这两个类。 - **InputStream 类** - `ByteArrayInputStream`: 提供了一个从...

    java IO流学习笔记

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

    JAVA IO流详解

    #### 四、常用IO流类介绍 1. **InputStream/OutputStream** - `InputStream`: 输入流的基类。 - `ByteArrayInputStream`: 从字节数组中读取数据。 - `FileInputStream`: 从文件系统中的文件读取字节。 - `...

    java IO 流详细分析

    对于不同的流类,它们提供了多种方法来实现数据的读写操作: - **FileWriter** - `write(char c)`:写入单个字符。 - `write(char[] cbuf)`:写入字符数组。 - `write(String str)`:写入字符串。 - `flush()`...

    javaIO流笔记

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

    Java-IO流基础例题 & 例题源码 & PPT教学文档(黑马程序员详细版).rar

    PPT教学文档通常会详细解释Java IO流的分类、用法、示例和最佳实践,帮助学习者更直观地理解各个流类的用途和工作原理。通过学习PPT,你可以了解如何在实际项目中合理选择和使用不同的流。 七、源码分析 提供的源码...

    javaio流电子书整理面试必考io流帮助你入职阿里腾讯

    总结,Java IO流涉及的概念广泛,包括流的基本概念、分类、核心类的使用以及实际操作中的模式选择和编码处理。掌握这些知识点不仅能帮助开发者完成基本的文件操作,也是面试中经常被问到的领域,对于提升职业竞争力...

    java_io流的处理

    Java的`java.io`包提供了多种字节流类,包括: - `InputStream`: 基本输入流类,用于读取数据。 - `OutputStream`: 基本输出流类,用于写入数据。 - `FileInputStream`和`FileOutputStream`: 用于从文件读取和向...

    Java_IO流详解

    #### 一、Java IO流概述 Java的输入/输出(IO)操作是基于数据流(Stream)的,这是Java处理输入输出的核心机制。在Java中,IO流提供了对文件读写、标准设备输出等功能的支持。所有数据在Java中都是通过流进行输入...

    IO笔记.zip关于javaIO流部分的详细笔记

    一、Java IO流概述 Java IO流分为四个主要类别:字节流(Byte Stream)、字符流(Character Stream)、对象流(Object Stream)和文件流(File Stream)。字节流处理单个字节的数据,字符流处理Unicode字符,对象流...

    JAVA IO流学习文档

    - **概述**:Java的IO流体系主要分为两大类——字节流和字符流,每种流又根据数据流向进一步分为输入流和输出流。 ##### 字节流 1. **InputStream**: 代表从源读取数据的字节输入流。 2. **OutputStream**: 代表向...

    java Io流总结(毕向东)

    这些流类提供了多种子类,用于处理不同类型的数据源: - **File**: 文件类,用于文件路径的操作。 - **PrintStream/PrintWriter**: 打印流,用于控制台输出或文件输出。 - **PipedInputStream/PipedOutputStream**:...

    目录多文件上传-JAVA IO流常用详解

    本文将详细介绍一个Java程序中的功能模块——如何实现目录多文件上传,并利用Java IO流进行文件复制操作。该功能可以实现在用户选择一个目录后,自动扫描并上传该目录下的所有文件及其子文件夹,最终达到完整备份或...

    完整版 Java基础入门教程 Java程序语言设计 04 IO流 输入输出流(共31页).ppt

    完整版 Java基础入门教程 Java程序语言设计 04 IO流 输入输出流(共31页).ppt 完整版 Java基础入门教程 Java程序语言设计 05 GUI AWT 事件模型(共27页).ppt 完整版 Java基础入门教程 Java程序语言设计 05 GUI GUI...

    java流IO总结

    Java I/O系统是Java编程的重要组成部分,通过掌握不同的流类及其使用方法,可以有效地处理文件读写、网络通信等常见的输入输出操作。了解I/O流的基本概念、分类以及常用的类和接口,可以帮助开发者更好地理解和使用...

Global site tag (gtag.js) - Google Analytics