Java 中 IO 流分为几种?
Java 中 IO 流分为几种?
在Java中,I/O(输入/输出)流用于处理输入和输出操作。I/O 流分为两大类:字节流和字符流,每个类别又分为输入流和输出流。
字节流(Byte Streams):
字节流以字节为单位进行操作,适用于处理二进制数据。
-
输入字节流:
-
InputStream
是所有输入字节流的抽象基类。InputStream inputStream = new FileInputStream("example.txt"); int data = inputStream.read(); // 读取一个字节
-
-
输出字节流:
-
OutputStream
是所有输出字节流的抽象基类。OutputStream outputStream = new FileOutputStream("output.txt"); outputStream.write(data); // 写入一个字节
-
字符流(Character Streams):
字符流以字符为单位进行操作,适用于处理文本数据。
-
输入字符流:
-
Reader
是所有输入字符流的抽象基类。Reader reader = new FileReader("example.txt"); int data = reader.read(); // 读取一个字符
-
-
输出字符流:
-
Writer
是所有输出字符流的抽象基类。Writer writer = new FileWriter("output.txt"); writer.write(data); // 写入一个字符
-
缓冲流(Buffered Streams):
缓冲流通过缓冲区提高了 I/O 操作的性能,分为字节缓冲流和字符缓冲流。
-
字节缓冲流:
-
BufferedInputStream
和BufferedOutputStream
。InputStream inputStream = new FileInputStream("example.txt"); BufferedInputStream bufferedInputStream = new BufferedInputStream(inputStream); int data = bufferedInputStream.read(); // 通过缓冲区读取一个字节
-
BufferedOutputStream
同样用于提高输出性能。
-
-
字符缓冲流:
-
BufferedReader
和BufferedWriter
。Reader reader = new FileReader("example.txt"); BufferedReader bufferedReader = new BufferedReader(reader); String line = bufferedReader.readLine(); // 通过缓冲区读取一行字符
-
BufferedWriter
同样用于提高输出性能。
-
对象流(Object Streams):
对象流用于读写对象,包括字节对象流和字符对象流。
-
字节对象流:
-
ObjectInputStream
和ObjectOutputStream
。ObjectOutputStream objectOutputStream = new ObjectOutputStream(new FileOutputStream("objects.dat")); objectOutputStream.writeObject(new MyClass()); // 写入对象
-
ObjectInputStream
用于读取对象。
-
-
字符对象流:
-
ObjectReader
和ObjectWriter
。ObjectWriter objectWriter = new ObjectWriter(new FileWriter("objects.txt")); objectWriter.writeObject(new MyClass()); // 写入对象
-
ObjectReader
用于读取对象。
-
这些是 Java I/O 流的基本分类,每个类别都有其特定的用途,具体的选择取决于你处理的数据类型以及对性能和便利性的需求。