Java IO(一): I/O基础概念_java几种io
I/O基础概念
- 1 Java I/O基础概念
- 2 I/O流的概念
- 3 Java I/O类层次结构
- 3.1 字节流类
- 3.2 字符流类
- 3.3 流的使用
- 3.4 示例代码
- 4 总结
大家好,我是欧阳方超,公众号同名。
1 Java I/O基础概念
Java I/O是Java中用于处理系统输入和输出的机制,它提供了一套丰富的类和接口,用于读取和写入数据。理解Java I/O是掌握Java的关键,因为几乎所有应用程序都需要除了输入和输出操作。
2 I/O流的概念
Java I/O是基于流的概念。流是一个有序的数据序列,用于在源和目标之间传输数据。Java中有两种基本类型的流:输入流和输出流。
输入流:用于从数据源读取数据,例如从文件、网络或键盘读取数据。
输出流:用于向数据目标写入数据,例如写入文件或发送数据到网络。
3 Java I/O类层次结构
Java I/O库中的类层次结构基于两个抽象类:InputStream和OutputStream,它们分别用于字节输入和输出操作。此外,还有用于处理字符数据的Reader和Writer类。
3.1 字节流类
InputStream:所有字节输入流类的超类。
OutputStream:所有字节输出流类的超类。
常用的子类有FileInputStream、FileOutputSream、BufferedInputStream、BufferedOutputStream等。
3.2 字符流类
Reader:所有字符输入流类的超类。Writer:所有字符输出流类的超类。常用的子类包括FileReader、FileReader、FileWriter、BufferedReader、BufferedWriter等。
3.3 流的使用
流是使用通常遵循以下步骤:
创建流:创建一个流对象来表示输入或输出。
打开流:打开流以准备进行读写操作。
读写数据:使用流对象的方法进行数据的读写。
关闭流:操作完成后,关闭流以释放系统资源。
3.4 示例代码
以下是一个简单的示例,展示如何使用FileInputStream和FileOutputStream进行文件的读写操作:
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
public class FileCopyExample {
public static void main(String[] args) {
try (FileInputStream in = new FileInputStream("D:\\ceshi\\myfile.txt");
FileOutputStream out = new FileOutputStream("D:\\ceshi\\myfilebak.txt")) {
int byteData;
while ((byteData = in.read()) != -1) {
out.write(byteData);
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
在这示例中,FileInputStream用于从myfile.txt读取字节数据,而FileOutputStream用于将这些字节数据写入myfilebak.txt。使用try-with-resources语句可以确保流在使用后自动关闭。因为这些类实现了AutoCloseable接口,在try块结束时会自动调用close()方法。
4 总结
Java I/O提供了一种强大而灵活的方式来处理输入和输出操作。通过理解流的基本概念以及如何使用Java提供的丰富类库,可以有效处理各种I/O任务。