Java 编程之IO流资料详细整理
什么是 IO 流
输入输出流(IO流)指的是一种提供了对数据流进行读写的机制,是 Java 中用于处理流数据的一种常用方式。在 Java 中,IO 流分为字节流和字符流两种方式,分别处理二进制数据和文本数据。
IO 流的分类
字节流
字节流是 IO 流中最基本的一种,主要用于处理二进制数据。Java 中的字节流有两个基本的抽象类:InputStream 和 OutputStream,它们是用来表示字节输入流和字节输出流的。
输入流
InputStream可以读取字节数组和字节数组的某一部分数据,也可以读取单个字节、整数、字符串等。常用的实现类有:
类名 | 说明 |
---|---|
FileInputStream | 读取本地文件 |
ByteArrayInputStream | 读取字节数组 |
FilterInputStream | 过滤输入流的抽象类 |
BufferedInputStream | 带缓冲的字节输入流 |
DataInputStream | 读取基本数据类型 |
以下是读取本地文件示例:
try {
FileInputStream fis = new FileInputStream("test.txt");
int data;
while ((data = fis.read()) != -1) {
System.out.println((char) data);
}
fis.close();
} catch (IOException e) {
e.printStackTrace();
}
输出流
OutputStream 可以写入字节数组、单个字节、整数、字符串等。常用的实现类有:
类名 | 说明 |
---|---|
FileOutputStream | 写入本地文件 |
ByteArrayOutputStream | 写入字节数组 |
FilterOutputStream | 过滤输出流的抽象类 |
BufferedOutputStream | 带缓冲的字节输出流 |
DataOutputStream | 写入基本数据类型 |
以下是写入本地文件示例:
try {
FileOutputStream fos = new FileOutputStream("test.txt");
String str = "hello world";
for (int i = 0; i < str.length(); i++) {
fos.write(str.charAt(i));
}
fos.close();
} catch (IOException e) {
e.printStackTrace();
}
字符流
字符流是用于读写文本信息的一种 IO 流类型,其本质还是字节流,只不过它将字节流转成字符流以方便读写文本数据,Java 中的字符流都继承自 Reader 和 Writer。
输入流
Reader 可以读取字符数组和字符数组的某一部分数据,也可以读取单个字符、字符串等。常用的实现类有:
类名 | 说明 |
---|---|
FileReader | 读取本地文件 |
CharArrayReader | 读取字符数组 |
FilterReader | 过滤输入流的抽象类 |
BufferedReader | 带缓冲的字符输入流 |
InputStreamReader | 读取字节流转换为字符流 |
StringReader | 读取字符串 |
以下是读取本地文件示例:
try {
FileReader fr = new FileReader("test.txt");
int data;
while ((data = fr.read()) != -1) {
System.out.println((char) data);
}
fr.close();
} catch (IOException e) {
e.printStackTrace();
}
输出流
Writer 可以写入字符数组、单个字符、字符串等。常用的实现类有:
类名 | 说明 |
---|---|
FileWriter | 写入本地文件 |
CharArrayWriter | 写入字符数组 |
FilterWriter | 过滤输出流的抽象类 |
BufferedWriter | 带缓冲的字符输出流 |
OutputStreamWriter | 写入字符流转换为字节流 |
StringWriter | 写入字符串 |
以下是写入本地文件示例:
try {
FileWriter fw = new FileWriter("test.txt");
String str = "hello world";
for (int i = 0; i < str.length(); i++) {
fw.write(str.charAt(i));
}
fw.close();
} catch (IOException e) {
e.printStackTrace();
}
总结
IO 流作为 Java 中常用的流处理方式,在实际开发中经常需要使用到。开发者需要理解 IO 流的基本概念、分类、常用的实现类以及不同实现类的应用场景,才能灵活运用 IO 流处理复杂的文件读写操作。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Java 编程之IO流资料详细整理 - Python技术站