Java代码实现:读取 data.txt 中的文件,按照第五列的数据(即 60001 后一列的数据)由小到大进行排 序。将排序后的数据写入到 newData.txt 中。并在命令行中打印出最小的第五列的值。 注:类名为 DataChooser
时间: 2024-03-18 21:39:40 浏览: 51
好的,以下是 Java 代码实现:
```java
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
public class DataChooser {
public static void main(String[] args) {
List<String[]> dataList = new ArrayList<>();
try (BufferedReader br = new BufferedReader(new FileReader("data.txt"))) {
String line;
while ((line = br.readLine()) != null) {
String[] data = line.split("\\s+");
// 判断数据是否符合要求,避免数组越界
if (data.length >= 5 && data[4].matches("\\d+")) {
dataList.add(data);
}
}
} catch (IOException e) {
e.printStackTrace();
}
// 使用 Collections.sort() 方法对 dataList 进行排序
Collections.sort(dataList, (o1, o2) -> Integer.compare(Integer.parseInt(o1[4]), Integer.parseInt(o2[4])));
try (FileWriter fw = new FileWriter("newData.txt")) {
for (String[] data : dataList) {
fw.write(String.join(" ", data) + System.lineSeparator());
}
} catch (IOException e) {
e.printStackTrace();
}
// 打印最小的第五列的值
if (!dataList.isEmpty()) {
int minValue = Integer.parseInt(dataList.get(0)[4]);
System.out.println("最小的第五列的值为:" + minValue);
}
}
}
```
这段代码首先读取 `data.txt` 文件,将其中符合要求的数据存入 `dataList` 中。然后使用 `Collections.sort()` 方法对 `dataList` 进行排序,排序规则为按照第五列的数据(即 `60001` 后一列的数据)由小到大进行排序。排序完成后,将排序后的数据写入到 `newData.txt` 中,并在命令行中打印出最小的第五列的值。
阅读全文