Java I/O 流中的字符串操作
Java I/O 流提供了强大的功能来处理字符串数据。通过使用 Reader
和 Writer
类,您可以方便地从各种源读取字符串并写入各种目标。
Reader
Reader
类用于从字符输入流中读取文本数据。您可以使用以下方法来处理字符串:
// 从 FileInputStream 中读取字符串
try (InputStreamReader reader = new InputStreamReader(new FileInputStream("input.txt"))) {
StringBuilder sb = new StringBuilder();
int c;
while ((c = reader.read()) != -1) {
sb.append((char) c);
}
String text = sb.toString();
} catch (IOException e) {
e.printStackTrace();
}
Writer
Writer
类用于将文本数据写入字符输出流。您可以使用以下方法来处理字符串:
// 向 FileWriter 中写入字符串
try (FileWriter writer = new FileWriter("output.txt")) {
String text = "Hello, world!";
writer.write(text);
writer.flush();
} catch (IOException e) {
e.printStackTrace();
}
实战案例:从文件中读取和写入字符串
考虑这样一个场景:您有一个文本文件 input.txt
,其中包含一些文本。您希望读取文件内容,并将内容复制到另一个文本文件 output.txt
中。
import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
class FileCopy {
public static void main(String[] args) {
try {
// 从 input.txt 中读取
File inputFile = new File("input.txt");
FileReader reader = new FileReader(inputFile);
BufferedReader bufferedReader = new BufferedReader(reader);
// 向 output.txt 中写入
File outputFile = new File("output.txt");
FileWriter writer = new FileWriter(outputFile);
String line;
while ((line = bufferedReader.readLine()) != null) {
writer.write(line + "\n");
}
reader.close();
writer.close();
System.out.println("文件已复制完成。");
} catch (IOException e) {
e.printStackTrace();
}
}
}