一、实验目的
1、掌握使用File类进行文件属性操作的方法。
2、掌握使用文件流进行文件的顺序读/写的方法。
二、实验环境
Windows,IDEA。
三、实验内容
1、将一个文本文件的内容按行读出,每读出一行就顺序加上行号,并写入到另一个文件中。
2、编写程序,输入一个文件夹路径,把该文件夹下的所有扩展名为.txt的文件名显示在屏幕上。
四、完成情况
实验内容按要求完成,代码运行正常,已检查。
五、源代码
package com.wzh;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.File;
import java.io.IOException;
public class AddLineNumberToFile {
public static void main(String[] args) {
// 1. 读取文件内容并添加行号,然后写入另一个文件
addLineNumberToFile("input.txt", "output.txt");
// 2. 显示指定文件夹下的所有扩展名为.txt的文件名
displayTxtFilesInFolder("D:\\test\\src\\com\\wzh");
}
private static void addLineNumberToFile(String inputFileName, String outputFileName) {
try (BufferedReader reader = new BufferedReader(new FileReader(inputFileName));
BufferedWriter writer = new BufferedWriter(new FileWriter(outputFileName))) {
String line;
int lineNumber = 1;
while ((line = reader.readLine()) != null) {
String lineWithNumber = lineNumber + ": " + line;
writer.write(lineWithNumber);
writer.newLine();
lineNumber++;
}
System.out.println("File processing completed.");
} catch (IOException e) {
e.printStackTrace();
}
}
private static void displayTxtFilesInFolder(String folderPath) {
File folder = new File(folderPath);
if (folder.isDirectory()) {
File[] files = folder.listFiles((dir, name) -> name.endsWith(".txt"));
if (files != null && files.length > 0) {
System.out.println("Text files in the folder:");
for (File file : files) {
System.out.println(file.getAbsolutePath());
}
} else {
System.out.println("No text files found in the folder.");
}
} else {
System.out.println("Invalid folder path.");
}
}
}
六、程序运行结果截图
七、小结
在第一次提供的代码中,文件路径是硬编码的,而且程序假定在运行的当前工作目录下有 input.txt 文件。确保文件路径是正确的,或者使用命令行参数传递文件路径。