JavaIO流的分类
Java IO(输入/输出)流是Java中用于处理输入和输出操作的核心部分。Java IO流可以根据不同的标准进行分类,主要包括以下几种分类方式:
字节流(Byte Stream):用于处理原始二进制数据的流。字节流的基类是 InputStream
和 OutputStream
。
FileInputStream
:从文件中读取字节。BufferedInputStream
:为其他输入流提供缓冲功能。FileOutputStream
:向文件中写入字节。BufferedOutputStream
:为其他输出流提供缓冲功能。字符流(Character Stream):用于处理字符数据的流。字符流的基类是 Reader
和 Writer
。
FileReader
:从文件中读取字符。BufferedReader
:为其他字符输入流提供缓冲功能,并提供读取行的功能。FileWriter
:向文件中写入字符。BufferedWriter
:为其他字符输出流提供缓冲功能,并提供写入行的功能。FileInputStream
和 FileOutputStream
。BufferedInputStream
和 BufferedOutputStream
。ByteArrayInputStream
和 ByteArrayOutputStream
。以下是一个简单的示例,展示如何使用字节流和字符流读取和写入文件。
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
public class ByteStreamExample {
public static void main(String[] args) {
String filePath = "example.txt";
// 写入字节流
try (FileOutputStream fos = new FileOutputStream(filePath)) {
String data = "Hello, Byte Stream!";
fos.write(data.getBytes());
} catch (IOException e) {
e.printStackTrace();
}
// 读取字节流
try (FileInputStream fis = new FileInputStream(filePath)) {
int byteData;
while ((byteData = fis.read()) != -1) {
System.out.print((char) byteData);
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
public class CharStreamExample {
public static void main(String[] args) {
String filePath = "example.txt";
// 写入字符流
try (BufferedWriter writer = new BufferedWriter(new FileWriter(filePath))) {
writer.write("Hello, Character Stream!");
} catch (IOException e) {
e.printStackTrace();
}
// 读取字符流
try (BufferedReader reader = new BufferedReader(new FileReader(filePath))) {
String line;
while ((line = reader.readLine()) != null) {
System.out.println(line);
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
Java IO流的分类帮助开发者选择合适的流来处理不同类型的数据。字节流适合处理二进制数据,而字符流则适合处理文本数据。通过合理使用节点流和处理流,可以提高程序的性能和可读性。