java:将本目录下的1.txt文件信息恢复顺序(1.txt文件是几个以序号为首的段落)
时间: 2024-10-23 17:17:51 浏览: 20
node文件批量重命名的方法示例
在Java中,要将名为"1.txt"的文件内容按照原始的顺序恢复,假设文件是由有序的行组成,每行前面有一个序号,你可以使用BufferedReader逐行读取文件,然后根据每行的序号对行进行排序后再保存回文件。这里是一个简单的示例:
```java
import java.io.*;
import java.util.*;
// 读取并排序文件
public void sortFile(String inputFile, String outputFile) {
try {
// 打开输入文件
BufferedReader reader = new BufferedReader(new FileReader(inputFile));
List<String> lines = new ArrayList<>(); // 存储按序号排序后的行
String line;
while ((line = reader.readLine()) != null) {
int sequence = Integer.parseInt(line.split(" ")[0]); // 提取序号
lines.add(sequence + ": " + line.substring(line.indexOf(" ") + 1)); // 保留原内容加上序号
}
reader.close();
// 对行列表排序
Collections.sort(lines, Comparator.comparingInt(line -> Integer.parseInt(line.split(": ")[0])));
// 写入到新的文件
BufferedWriter writer = new BufferedWriter(new FileWriter(outputFile));
for (String sortedLine : lines) {
writer.write(sortedLine);
writer.newLine();
}
writer.close();
System.out.println("文件已按照序号恢复了原始顺序,并保存在" + outputFile + "中.");
} catch (IOException e) {
System.err.println("错误处理文件操作:" + e.getMessage());
}
}
// 调用函数处理文件
public static void main(String[] args) {
String inputFilePath = "1.txt";
String outputFilePath = "sorted_1.txt";
sortFile(inputFilePath, outputFilePath);
}
```
这个代码首先从`1.txt`中读取每一行,提取出序号并存储在列表中,同时保留原始内容。然后对列表按序号排序,最后写入到新文件`sorted_1.txt`中。
阅读全文