01 Java IO概述 输入流输出流的区分,IO流的作用,IO流的分类

Java IO 概述

  • Java IO 概述
    • 输入和输出 – 数据源和目标媒介
    • 类InputStream, OutputStream, Reader 和Writer
    • Java IO的用途和特征
    • java.io相关类

Java IO 概述

java.io 通过数据流、序列化和文件系统提供系统输入和输出。

输入和输出 – 数据源和目标媒介

​ 输入和输出经常混淆,疑惑。

  • 输入流:向内存输入 即程序(内存)读取
  • 输出流:从内存输出 即程序(内存)输出
    01 Java IO概述 输入流输出流的区分,IO流的作用,IO流的分类_第1张图片

为了消除这种疑惑,java输入输出从名字上有一定的区分,从而从概念上与数据的来源和数据的流向想联系。

Java的IO包主要关注的是从原始数据源的读取以及输出原始数据到目标媒介。以下是最典型的数据源和目标媒介:

  • 文件
  • 管道
  • 网络连接
  • 内存缓存
  • System.in, System.out, System.error(Java标准输入、输出、错误输出)

在Java IO中,流是一个核心的概念。流从概念上来说是一个连续的数据流。既可以从流中读取数据,也可以往流中写数据。流与数据源或者数据流向的媒介相关联。在Java IO中流既可以是字节流(以字节为单位进行读写),也可以是字符流(以字符为单位进行读写)。

字节和字符的区别 :没有区别,仅仅是占用空间大小不同。

类InputStream, OutputStream, Reader 和Writer

InputStream、Reader 从数据源读取数据,即:数据源读入数据到内存中。程序读取
OutputStream、Writer将数据写入媒介中,即:从内存写入数据到媒介中。程序输出

Java IO的用途和特征

Java IO中包含了许多InputStream、OutputStream、Reader、Writer的子类。每一个类都负责不同的功能。

  • 文件访问
  • 网络访问
  • 内存缓存访问
  • 线程内部通信(管道)
  • 缓冲
  • 过滤
  • 解析
  • 读写文件(Readers / Writers)
  • 读取基本类型数据(long,int)
  • 读写对象

java.io相关类

类摘要
BufferedInputStream 作为另一种输入流,BufferedInputStream 为添加了功能,即缓冲输入和支持 markreset 方法的能力。
BufferedOutputStream 该类实现缓冲的输出流。
BufferedReader 从字符输入流中读取文本,缓冲各个字符,从而提供字符、数组和行的高效读取。
BufferedWriter 将文本写入字符输出流,缓冲各个字符,从而提供单个字符、数组和字符串的高效写入。
ByteArrayInputStream ByteArrayInputStream 包含一个内部缓冲区,该缓冲区存储从流中读取的字节。
ByteArrayOutputStream 此类实现了一个输出流,其中的数据被写入一个字节数组。
CharArrayReader 此类实现一个可用作字符输入流的字符缓冲区。
CharArrayWriter 此类实现一个可用作 Writer 的字符缓冲区。
DataInputStream 数据输入流允许应用程序以与机器无关方式从基础输入流中读取基本 Java 数据类型。
DataOutputStream 数据输出流允许应用程序以适当方式将基本 Java 数据类型写入输出流中。
File 文件和目录路径名的抽象表示形式。
FileDescriptor 文件描述符类的实例用作与基础机器有关的某种结构的不透明句柄,该结构表示开放文件、开放套接字或者字节的另一个源或接收者。
FileInputStream FileInputStream 从文件系统中的某个文件中获取输入字节。
FileOutputStream 文件输出流是用于将数据写入 FileFileDescriptor 的输出流。
FilePermission 此类表示对文件和目录的访问。
FileReader 用来读取字符文件的便捷类。
FileWriter 用来写入字符文件的便捷类。
FilterInputStream FilterInputStream 包含其他一些输入流,它将这些流用作其基本数据源,它可以直接传输数据或提供一些额外的功能。
FilterOutputStream 此类是过滤输出流的所有类的超类。
FilterReader 用于读取已过滤的字符流的抽象类。
FilterWriter 用于写入已过滤的字符流的抽象类。
InputStream 此抽象类是表示字节输入流的所有类的超类。
InputStreamReader InputStreamReader 是字节流通向字符流的桥梁:它使用指定的 [charset] 读取字节并将其解码为字符。
LineNumberInputStream 已过时。 此类错误假定字节能充分表示字符。
LineNumberReader 跟踪行号的缓冲字符输入流。
ObjectInputStream ObjectInputStream 对以前使用 ObjectOutputStream 写入的基本数据和对象进行反序列化。
ObjectInputStream.GetField 提供对从输入流读取的持久字段的访问权限。
ObjectOutputStream ObjectOutputStream 将 Java 对象的基本数据类型和图形写入 OutputStream。
ObjectOutputStream.PutField 提供对要写入 ObjectOutput 的持久字段的编程访问。
ObjectStreamClass 类的序列化描述符。
ObjectStreamField Serializable 类中 Serializable 字段的描述。
OutputStream 此抽象类是表示输出字节流的所有类的超类。
OutputStreamWriter OutputStreamWriter 是字符流通向字节流的桥梁:使用指定的 [charset]将要向其写入的字符编码为字节。
PipedInputStream 传送输入流应该连接到传送输出流;传送输入流会提供要写入传送输出流的所有数据字节。
PipedOutputStream 传送输出流可以连接到传送输入流,以创建通信管道。
PipedReader 传送的字符输入流。
PipedWriter 传送的字符输出流。
PrintStream PrintStream 为其他输出流添加了功能,使它们能够方便地打印各种数据值表示形式。
PrintWriter 向文本输出流打印对象的格式化表示形式。
PushbackInputStream] PushbackInputStream 向另一个输入流添加“推回 (push back)”或“取消读取 (unread)”一个字节的功能。
PushbackReader 允许将字符推回到流的字符流 reader。
RandomAccessFile 此类的实例支持对随机存取文件的读取和写入。
Reader 用于读取字符流的抽象类。
SequenceInputStream SequenceInputStream 表示其他输入流的逻辑串联。
SerializablePermission 此类用于可序列化权限。
StreamTokenizer StreamTokenizer 类获取输入流并将其分析为“标记”,允许一次读取一个标记。
StringBufferInputStream 已过时。 此类未能正确地将字符转换为字节。
StringReader 其源为一个字符串的字符流。
StringWriter 一个字符流,可以用其回收在字符串缓冲区中的输出来构造字符串。
Writer 写入字符流的抽象类。

你可能感兴趣的:(Java,IO,Java,IO流概述,输入流输出流的区分,IO流的作用,IO流的分类,java)