要Java代这是一个 Java 程序,它从一个名为 "data.txt" 的文件中读取数据,并对数据进行筛选和排序,最后将排序后的数据写入另一个名为 "newData.txt" 的文件中。程序的运行结果会输出排序后最小的第五列的值。 具体来说,程序首先创建了一个 ArrayList 类型的 dataList,用于存储读取到的数据。然后它利用 BufferedReader 类读取 "data.txt" 文件中的每一行数据,并将每行数据按空格进行分割,保存到一个 String 数组中。接着程序判断该数组中数据的个数是否大于等于 5,且第五个元素是否为数字,如果满足条件,则将该数组添加到 dataList 中。 程序接下来使用 Collections.sort() 方法对 dataList 进行排序,排序时通过传入一个 Lambda 表达式来指定排序规则,这里根据每个数组的第五个元素进行升序排序。 最后程序使用 FileWriter 类将排序后的数据写入 "newData.txt" 文件中,并打印出排序后最小的第五列的值。 需要注意的是,程序的运行结果可能受到数据文件中数据的影响,对于不同的数据文件可能会有不同的输出结果。码实现:
时间: 2024-03-25 13:35:54 浏览: 41
以下是 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.Comparator;
public class DataSorter {
public static void main(String[] args) {
ArrayList<String[]> dataList = new ArrayList<String[]>();
try {
BufferedReader reader = new BufferedReader(new FileReader("data.txt"));
String line = null;
while ((line = reader.readLine()) != null) {
String[] item = line.split(" ");
if (item.length >= 5 && item[4].matches("\\d+")) {
dataList.add(item);
}
}
reader.close();
} catch (IOException e) {
e.printStackTrace();
}
Collections.sort(dataList, new Comparator<String[]>() {
public int compare(String[] o1, String[] o2) {
return Integer.parseInt(o1[4]) - Integer.parseInt(o2[4]);
}
});
try {
FileWriter writer = new FileWriter("newData.txt");
for (String[] item : dataList) {
for (String str : item) {
writer.write(str + " ");
}
writer.write("\n");
}
writer.close();
System.out.println("排序后最小的第五列的值为:" + dataList.get(0)[4]);
} catch (IOException e) {
e.printStackTrace();
}
}
}
```
注意:在运行程序之前需要将 "data.txt" 文件和 DataSorter.java 放置在同一目录下。
阅读全文