Java 文件排序:读取、排序并写入数据
本教程将介绍如何使用 Java 代码读取文件中的数据,对数据进行排序,并将排序后的结果写入到另一个文件中。
假设文件 data.txt 中包含以下数据:
33 22 11 55 44
目标是将这些数据读取到程序中,排序后输出到新的文件 sorted_data.txt 中。以下代码实现了该功能:
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileWriter;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Scanner;
public class FileSorter {
public static void main(String[] args) {
// 读取文件中的数据
ArrayList<Integer> list = readFromFile('data.txt');
System.out.println('读取到的数据为:' + list);
// 排序
Collections.sort(list);
System.out.println('排序后的结果为:' + list);
// 写入到本地文件
writeToFile(list, 'sorted_data.txt');
System.out.println('已将排序后的结果写入到文件 sorted_data.txt 中。');
}
public static ArrayList<Integer> readFromFile(String filename) {
ArrayList<Integer> list = new ArrayList<>();
try {
Scanner scanner = new Scanner(new File(filename));
while (scanner.hasNextInt()) {
list.add(scanner.nextInt());
}
scanner.close();
} catch (FileNotFoundException e) {
System.err.println('文件 ' + filename + ' 不存在!');
}
return list;
}
public static void writeToFile(ArrayList<Integer> list, String filename) {
try {
FileWriter writer = new FileWriter(new File(filename));
for (int i = 0; i < list.size(); i++) {
writer.write(list.get(i) + ' ');
}
writer.close();
} catch (IOException e) {
System.err.println('写入文件 ' + filename + ' 失败!');
}
}
}
代码解释:
-
readFromFile() 方法
- 从指定文件
filename中读取数据,并将其存储在ArrayList<Integer>中。 - 使用
Scanner类逐行读取文件内容,并将每个整型数据添加到list中。 - 如果文件不存在,会打印错误信息。
- 从指定文件
-
writeToFile() 方法
- 将
list中的排序后的数据写入到指定文件filename中。 - 使用
FileWriter类将数据写入到文件。 - 每个数据之间用空格隔开。
- 如果写入文件失败,会打印错误信息。
- 将
-
main() 方法
- 调用
readFromFile()方法读取文件数据。 - 使用
Collections.sort()方法对数据进行排序。 - 调用
writeToFile()方法将排序后的数据写入到新文件。
- 调用
这段代码演示了如何使用 Java 代码对文件进行数据读取、排序和写入操作,并提供了详细的解释,方便读者理解和应用。
原文地址: https://www.cveoy.top/t/topic/olXx 著作权归作者所有。请勿转载和采集!