太原理工大学 强彦 编程任务:编写一个程序,该程序应从当前运行的源代码文件中读取内容并将其复制到同一目录下名为 ‘temp.txt’ 的文本文件中,目标是实现满分10分的要求,请提供相应的代码实现和详细步骤。用Java
时间: 2024-10-21 16:10:49 浏览: 11
在Java中,你可以使用`java.io`包下的`File`和`BufferedReader`类来实现这个功能。以下是详细的步骤和代码示例:
```java
import java.io.*;
public class Main {
public static void main(String[] args) {
// 定义源文件路径和目标文件名
String sourceFilePath = "src/main/java/your_file.java"; // 替换为实际的源代码文件路径
String targetFileName = "temp.txt";
try {
// 创建一个File对象,表示源文件
File sourceFile = new File(sourceFilePath);
// 检查文件是否存在
if (!sourceFile.exists()) {
System.out.println("Source file not found!");
return;
}
// 创建一个BufferedReader对象来读取源文件的内容
BufferedReader reader = new BufferedReader(new FileReader(sourceFile));
// 创建一个StringBuilder来保存读取的内容,因为一次读取一行
StringBuilder stringBuilder = new StringBuilder();
// 循环读取文件直到文件结束
String line;
while ((line = reader.readLine()) != null) {
stringBuilder.append(line).append("\n"); // 补充行终止符
}
// 关闭reader
reader.close();
// 将StringBuilder的内容写入目标文件
BufferedWriter writer = new BufferedWriter(new FileWriter(targetFileName));
writer.write(stringBuilder.toString());
writer.close();
System.out.println("Content copied successfully!");
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}
```
步骤概述:
1. 初始化源文件路径和目标文件名。
2. 检查源文件是否存在。
3. 使用`BufferedReader`逐行读取源文件内容,并添加到`StringBuilder`中。
4. 关闭`BufferedReader`。
5. 写入`StringBuilder`内容到新创建的目标文件`temp.txt`,使用`BufferedWriter`完成。
6. 打印成功消息或处理异常。
请注意,你需要替换`your_file.java`为实际的源代码文件名称,并且确保当前运行的程序具有对源文件的访问权限。如果遇到错误,上述代码将捕获异常并打印堆栈跟踪。
阅读全文