Java I/O



Java I/O

Java I/O (输入和输出)用于
处理输入
产生输出
Java使用流的概念来快速进行I/O操作。 java.io软件包包含输入和输出操作所需的所有类。
我们可以通过Java I/O API在Java中执行
文件处理

流是数据序列。在Java中,流由字节组成。之所以称其为溪流,是因为它就像不断流动的水流一样。
在Java中,会自动为我们创建3个溪流。所有这些流都随控制台附带。
1)System.out: 标准输出流
2)System.in: 标准输入流
3)System.err: 标准错误流
让我们看一下打印输出和错误的代码消息"。
 System.out.println("simple message");
System.err.println("error message");

让我们看一下从控制台获取
输入的代码。
 int i=System.in.read();
System.out.println((char)i);
//will print the character

您知道吗?

如何仅使用单个流将公共数据写入多个文件?
如何通过单个流访问多个文件?
我们如何改善输入和输出操作的性能?
我们可以通过几种方式从键盘读取数据?
控制台类是什么?
如何压缩和解压缩文件的数据?

OutputStream与InputStream

以下给出了OutputStream和InputStream类的解释:

OutputStream

Java应用程序使用输出流将数据写入目标位置。

InputStream

Java应用程序使用输入流从源中读取数据;它可能是文件,数组,外围设备或套接字。它可以是文件,数组,外围设备或套接字。
通过下图让我们了解Java OutputStream和InputStream的工作。

Java I/O_https://bianchenghao6.com_【Java 基础教程】_第1张


OutputStream类

OutputStream类是一个抽象类。它是代表字节输出流的所有类的超类。输出流接受输出字节并将其发送到某些接收器。

OutputStream的有用方法

方法 说明
1) public void write(int)引发IOException 用于将字节写入当前输出流。
2) public void write(byte[])引发IOException 用于将字节数组写入当前输出流。
3)public void flush()引发IOException 刷新当前输出流。
4)public void close()引发IOException 用于关闭当前输出流。

OutputStream层次结构

Java I/O_https://bianchenghao6.com_【Java 基础教程】_第2张


InputStream类

InputStream类是一个抽象类。它是代表字节输入流的所有类的超类。

InputStream的有用方法

方法 说明
1)public abstract int read()引发IOException 从输入流中读取下一个数据字节。它在文件末尾返回-1。
2)public int available()引发IOException 返回对可以从当前输入流读取的字节数的估计。
3)public void close()引发IOException 用于关闭当前输入流。

InputStream层次结构

Java I/O_https://bianchenghao6.com_【Java 基础教程】_第3张

Java I/O操作类

说明
FileOutputStream Java FileOutputStream是用于将数据写入文件的输出流。
FileInputStream Java FileInputStream类从文件获取输入字节。
BufferedOutputStream Java BufferedOutputStream用于缓冲输出流。
BufferedInputStream Java BufferedInputStream用于从流中读取信息。
SequenceInputStream Java SequenceInputStream是用于从多个流中读取数据。
ByteArrayOutputStream Java ByteArrayOutputStream类用于写入公共数据到多个文件中
ByteArrayInputStream Java ByteArrayInputStream可以用来读取字节array作为输入流。
DataOutputStream DataOutputStream编写原始Java数据类型以与计算机无关的方式输出到输出流。
DataInputStream Java DataInputStream允许应用程序以独立于机器的方式从输入流中读取原始数据。
FilterOutputStream Java FilterOutputStream类实现OutputStream它提供了不同的子类。
FilterInputStream Java FilterInputStream实现InputStream类。
ObjectStream Java ObjectStream 充当类的Serialization描述符。
ObjectStreamField 来自Serializable类的Serializable字段的描述。
Console Java Console类用于从控制台获取输入。
FilePermission Java FilePermission类包含与目录或文件相关的权限。
Writer Java Writer用于写入字符流的抽象类。
Reader Java Reader是抽象类,用于读取字符流。
FileWriter Java FileWriter类用于将面向字符的数据写入文件。
FileReader Java FileReader类用于从文件读取数据。
BufferedWriter Java BufferedWriter类用于为Writer实例提供缓冲。
BufferedReader Java BufferedReader类用于从基于字符的输入流中读取文本。
CharArrayReader Java CharArrayReader由两个词组成: CharArray和Reader。
CharArrayWriter Java Java CharArrayWriter类可用于将公共数据写入多个文件。
PrintStream Java PrintStream类提供了将数据写入另一个流的方法。
PrintWriter Java PrintWriter用于将对象的格式化表示形式打印到文本输出流中。
OutputStreamWriter OutputStreamWriter用于将字符流转换为字节流。
InputStreamReader InputStreamReader读取字节并使用指定的字符集将其解码为字符。
PushbackInputStream PushbackInputStream类覆盖InputStream并为另一个输入提供额外的功能流。
PushbackReader PushbackReader用于将字符推回流中,并覆盖FilterReader类。
StringWriter Java StringWriter从字符串缓冲区收集输出的字符流,可用于构造字符串。
StringReader Java StringReader是以字符串为源的字符流。
PipedWriter PipedWriter类用于将java管道编写为字符流。
PipedReader PipedReader类用于以字符流的形式读取管道的内容。
FilterWriter Java FilterWriter类是抽象的类,用于编写已过滤的字符流。
FilterReader Java FilterReader用于对reader流执行过滤操作。
File File类是文件和目录路径名的抽象表示。
FileDescriptor FileDescriptor类用作表示打开的文件(打开的套接字)的基础计算机特定结构的句柄。
RandomAccessFile RandomAccessFile用于读取和写入随机访问文件。
java.util.Scanner Java Scanner从键盘读取输入的方式.