写一个程序,实现从指定文本文件(文件名从键盘输入)中读出文件内容,并标注上行号写到另一个文本文件《文件名从键盘输入)中
时间: 2025-01-01 14:35:29 浏览: 16
要编写这样一个程序,你可以使用Java中的`java.io`包中的`BufferedReader`和`PrintWriter`来分别处理文件的读取和输出。以下是一个简单的示例代码:
```java
import java.io.*;
public class Main {
public static void main(String[] args) {
try {
// 获取用户输入的源文件名和目标文件名
Scanner scanner = new Scanner(System.in);
System.out.println("请输入源文件名称:");
String sourceFileName = scanner.nextLine();
System.out.println("请输入目标文件名称:");
String targetFileName = scanner.nextLine();
// 检查文件是否存在
File sourceFile = new File(sourceFileName);
if (!sourceFile.exists()) {
throw new FileNotFoundException("源文件不存在");
}
// 读取源文件并添加行号
BufferedReader reader = new BufferedReader(new FileReader(sourceFile));
PrintWriter writer = new PrintWriter(new BufferedWriter(new FileWriter(targetFileName)));
int lineNumber = 1;
String line;
while ((line = reader.readLine()) != null) {
writer.println("Line " + lineNumber + ": " + line);
lineNumber++;
}
reader.close();
writer.close();
System.out.println("文件内容已成功写入目标文件");
} catch (FileNotFoundException e) {
System.err.println("错误: " + e.getMessage());
} catch (IOException e) {
System.err.println("I/O 错误: " + e.getMessage());
}
}
}
```
在这个程序中,我们首先获取用户的输入,然后打开源文件进行读取。每读取一行,我们就为该行添加行号,并将其写入目标文件。如果遇到任何错误(如文件找不到或IO操作异常),我们将捕获这些异常并打印相应的错误消息。
运行此程序后,请确保正确提供文件路径,因为程序假设它们是相对当前目录的。如果你希望处理绝对路径,你需要调整文件名的构造方式。
阅读全文