java读取 data.txt 中的文件, 按照第五列的数据(即 60001 后一列的数据)由小到大进行排序。将排序后的数据写入到 newData.txt 中。并在命令行中打印出最小的第五列的值。
时间: 2024-03-27 13:35:22 浏览: 56
java实现输入5个数进行排序.pdf
5星 · 资源好评率100%
好的,这是一个文件读写和排序的问题,Java可以通过以下代码实现:
```java
import java.io.*;
import java.util.*;
public class FileSorter {
public static void main(String[] args) throws IOException {
// 读取 data.txt 文件
BufferedReader reader = new BufferedReader(new FileReader("data.txt"));
// 构建一个数组列表,用于存储每行数据
ArrayList<String> lines = new ArrayList<>();
String line;
while ((line = reader.readLine()) != null) {
// 将每行数据存储到列表中
lines.add(line);
}
// 关闭文件读取器
reader.close();
// 使用比较器按照第五列的数据排序
Collections.sort(lines, new Comparator<String>() {
@Override
public int compare(String o1, String o2) {
String[] arr1 = o1.split("\\s+");
String[] arr2 = o2.split("\\s+");
return Integer.compare(Integer.parseInt(arr1[4]), Integer.parseInt(arr2[4]));
}
});
// 写入 newData.txt 文件
BufferedWriter writer = new BufferedWriter(new FileWriter("newData.txt"));
for (String l : lines) {
writer.write(l);
writer.newLine();
}
writer.close();
// 打印最小的第五列的值
System.out.println("最小的第五列的值为:" + lines.get(0).split("\\s+")[4]);
}
}
```
需要注意的是,这里假设每行数据是由空格分隔的,如果实际数据中使用了其他分隔符,需要根据实际情况进行修改。
阅读全文