Java 中的 I/O(输入/输出)操作是处理文件和流的重要部分。以下是有关 Java I/O 的基本概念和一些常用的类和接口的教程:

1. 流(Streams):
Java I/O 主要围绕两种类型的流展开:字节流(Byte Streams)和字符流(Character Streams)。
   - 字节流: 以字节为单位进行操作,适用于二进制数据。
   - 字符流: 以字符为单位进行操作,适用于文本数据。

2. 字节流(Byte Streams):
   - FileInputStream 和 FileOutputStream: 用于从文件读取数据和向文件写入数据。
   - ByteArrayInputStream 和 ByteArrayOutputStream: 用于在内存中读取和写入字节数组。
   - DataInputStream 和 DataOutputStream: 提供了对基本数据类型的高级 I/O 操作。

3. 字符流(Character Streams):
   - FileReader 和 FileWriter: 用于从文件读取字符数据和向文件写入字符数据。
   - BufferedReader 和 BufferedWriter: 提供了缓冲区,提高了 I/O 的效率。
   - CharArrayReader 和 CharArrayWriter: 在内存中读取和写入字符数组。

4. 缓冲流(Buffered Streams):
   缓冲流通过在内存中保留数据的缓冲区,提高了读写性能。
   - BufferedReader 和 BufferedWriter: 用于缓冲字符数据的读写。
   - BufferedInputStream 和 BufferedOutputStream: 用于缓冲字节数据的读写。

5. 对象序列化(Object Serialization):
   ObjectInputStream 和 ObjectOutputStream 用于将对象写入文件或从文件中读取对象。

6. 文件和目录操作:
   - File 类: 用于表示文件和目录的路径。
   - FileReader 和 FileWriter: 用于读写文件的字符数据。
   - FileInputStream 和 FileOutputStream: 用于读写文件的字节数据。

7. 标准输入输出(Standard Input/Output):
   - System.in 和 System.out: 分别用于标准输入和标准输出。

8. NIO(New I/O):
   Java 7 引入的 NIO 通过 java.nio 包提供了更为灵活和高效的 I/O 操作。

示例代码:

使用字符流读取文件:
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;

public class ReadFileExample {
    public static void main(String[] args) {
        try (BufferedReader reader = new BufferedReader(new FileReader("example.txt"))) {
            String line;
            while ((line = reader.readLine()) != null) {
                System.out.println(line);
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

使用字节流写入文件:
import java.io.FileOutputStream;
import java.io.IOException;

public class WriteFileExample {
    public static void main(String[] args) {
        try (FileOutputStream fos = new FileOutputStream("example.txt")) {
            String data = "Hello, World!";
            fos.write(data.getBytes());
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

这只是 Java I/O 的入门,实际的应用中可能会涉及更多高级的概念和用法。


转载请注明出处:http://www.zyzy.cn/article/detail/449/Java