今天继续学IO流
文件读取(FileReader)
FileReader用于从文件中读取字符数据。例如,读取一个文本文件:
java
import java.io.FileReader;
import java.io.IOException;
public class FileReaderExample {
public static void main(String[] args) {
try (FileReader fr = new FileReader("example.txt")) {
int data;
while ((data = fr.read()) != -1) {
System.out.print((char) data);
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
在这个例子中,使用FileReader读取文件example.txt中的字符数据并输出。
文件写入(FileWriter)
FileWriter用于向文件中写入字符数据。例如,向一个文件写入文本数据:
java
import java.io.FileWriter;
import java.io.IOException;
public class FileWriterExample {
public static void main(String[] args) {
try (FileWriter fw = new FileWriter("example.txt")) {
String content = "Hello, World!";
fw.write(content);
} catch (IOException e) {
e.printStackTrace();
}
}
}
在这个例子中,使用FileWriter将字符串"Hello, World!"写入文件example.txt中。
缓冲流的使用
缓冲流可以提高I/O操作的效率,减少系统调用的次数。常见的缓冲流类包括BufferedInputStream、BufferedOutputStream、BufferedReader和BufferedWriter。
缓冲字符输入流(BufferedReader)
BufferedReader用于高效地读取字符数据。例如,读取一个文本文件并按行输出:
java
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
public class BufferedReaderExample {
public static void main(String[] args) {
try (BufferedReader br = new BufferedReader(new FileReader("example.txt"))) {
String line;
while ((line = br.readLine()) != null) {
System.out.println(line);
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
在这个例子中,使用BufferedReader读取文件example.txt中的字符数据,并按行输出。缓冲字符输出流(BufferedWriter)
BufferedWriter用于高效地写入字符数据。例如,向一个文件写入多行文本数据:
java
import java.io.BufferedWriter;
import java.io.FileWriter;
import java.io.IOException;
public class BufferedWriterExample {
public static void main(String[] args) {
try (BufferedWriter bw = new BufferedWriter(new FileWriter("example.txt"))) {
bw.write("Hello, World!");
bw.newLine(); // 写入一个行分隔符
bw.write("This is a test.");
} catch (IOException e) {
e.printStackTrace();
}
}
}
在这个例子中,使用BufferedWriter将多行文本数据写入文件example.txt中。