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