.编写 Java 应用程序。要求该程序使用 Java 缓冲流读取C盘根目录下的商品价格信息.tut文件里的内容,再将读取的每行内容前添加行号后,写入另一个文本文件存储。
时间: 2024-12-17 15:18:09 浏览: 13
要在Java中编写一个程序来完成这个任务,我们可以使用`BufferedReader`和`FileWriter`来操作文件。首先,确保有适当的权限访问C盘根目录。以下是步骤和代码实现:
1. 引入库和基本类:
```java
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
```
2. 定义方法来读取源文件和写入目标文件:
```java
public class PriceReaderWriter {
public static void processFiles(String sourceFilePath, String targetFilePath) {
BufferedReader reader = null;
BufferedWriter writer = null;
try {
// 创建读取源文件的对象
reader = new BufferedReader(new FileReader(sourceFilePath));
// 创建写入目标文件的对象
writer = new BufferedWriter(new FileWriter(targetFilePath));
// 读取源文件,逐行处理
int lineNumber = 1;
String line;
while ((line = reader.readLine()) != null) {
// 在每行前面添加行号
writer.write(lineNumber + ": " + line);
writer.newLine(); // 每行结尾换行
lineNumber++; // 行号递增
}
} catch (IOException e) {
System.err.println("Error reading or writing file: " + e.getMessage());
} finally {
// 关闭流以释放资源
try {
if (reader != null) {
reader.close();
}
if (writer != null) {
writer.close();
}
} catch (IOException e) {
System.err.println("Error closing files: " + e.getMessage());
}
}
}
public static void main(String[] args) {
String sourcePath = "C:\\tut.txt"; // 替换为C盘根目录的实际文件路径
String targetPath = "output.txt";
processFiles(sourcePath, targetPath);
}
}
```
在这个代码中,我们首先打开`sourceFilePath`作为输入文件,然后逐行读取。每行数据前面加上行号,然后写入到`targetFilePath`中。最后记得关闭`BufferedReader`和`BufferedWriter`以防止资源泄露。
阅读全文