读取 data.txt 中的文件,按照第五列的数据(即 60001 后一列的数据)由小到大进行排 序。将排序后的数据写入到 newData.txt 中。并在命令行中打印出最小的第五列的值。 java代码实现,data.txt地址为"D:/dududu/data.txt"
时间: 2024-01-22 21:19:09 浏览: 133
以下是实现该功能的 Java 代码:
```java
import java.io.*;
import java.util.*;
public class SortData {
public static void main(String[] args) {
String inputFile = "D:/dududu/data.txt";
String outputFile = "D:/dududu/newData.txt";
List<String[]> data = new ArrayList<>();
try (BufferedReader br = new BufferedReader(new FileReader(inputFile))) {
String line;
while ((line = br.readLine()) != null) {
String[] columns = line.split("\\s+");
data.add(columns);
}
} catch (IOException e) {
e.printStackTrace();
return;
}
Collections.sort(data, Comparator.comparingInt(a -> Integer.parseInt(a[4])));
try (BufferedWriter bw = new BufferedWriter(new FileWriter(outputFile))) {
for (String[] columns : data) {
for (String column : columns) {
bw.write(column);
bw.write(" ");
}
bw.newLine();
}
} catch (IOException e) {
e.printStackTrace();
return;
}
System.out.println("最小的第五列的值为:" + data.get(0)[4]);
}
}
```
解释一下代码:
1. 定义输入文件和输出文件的路径。
2. 创建一个空的 `List<String[]>`,用于存放读取的数据。
3. 使用 `BufferedReader` 从输入文件中逐行读取数据,将每一行按空格分割并转化为数组,将其添加到 `data` 中。
4. 使用 `Collections.sort` 方法对 `data` 进行排序,排序的依据是每个数组的第五个元素(即下标为 4 的元素)。
5. 使用 `BufferedWriter` 将排序后的数据写入到输出文件中,每个元素之间用空格进行分隔。
6. 在命令行中打印出最小的第五列的值,即排序后第一个数组的第五个元素。
阅读全文