一、基本概念
输入输出流是Java中处理数据的重要机制,它允许程序与外部世界进行数据交互。Java提供了丰富的输入输出类和接口,可以满足各种不同的输入输出需求。
二、流的分类
在Java中,流可以分为字节流和字符流两种类型。
- 字节流(ByteStream):字节流以字节为单位进行读写操作,适用于处理二进制数据或者字节流的情况。字节流类的基类是InputStream和OutputStream。
- 字符流(CharacterStream):字符流以字符为单位进行读写操作,适用于处理文本数据。字符流类的基类是Reader和Writer。
三、常用的输入输出类
- Java提供了许多输入输出类,下面介绍几个常用的类及其使用方法。
- FileInputStream和FileOutputStream:用于读取和写入文件的字节流类。示例代码如下:
try {
FileInputStream fis = new FileInputStream("input.txt");
FileOutputStream fos = new FileOutputStream("output.txt");
int data;
while ((data = fis.read()) != -1) {
fos.write(data);
}
fis.close();
fos.close();
} catch (IOException e) {
e.printStackTrace();
}
- FileReader和FileWriter:用于读取和写入文件的字符流类。示例代码如下:
try {
FileReader fr = new FileReader("input.txt");
FileWriter fw = new FileWriter("output.txt");
int data;
while ((data = fr.read()) != -1) {
fw.write(data);
}
fr.close();
fw.close();
} catch (IOException e) {
e.printStackTrace();
}
- BufferedReader和BufferedWriter:用于提供缓冲功能的字符流类,可以提高读写效率。示例代码如下:
try {
FileReader fr = new FileReader("input.txt");
BufferedReader br = new BufferedReader(fr);
FileWriter fw = new FileWriter("output.txt");
BufferedWriter bw = new BufferedWriter(fw);
String line;
while ((line = br.readLine()) != null) {
bw.write(line);
bw.newLine();
}
br.close();
bw.close();
} catch (IOException e) {
e.printStackTrace();
}