Java 在另一个文件中对txt文件的整数进行排序
我必须在另一个名为“file_2.txt”的文件中对名为“file_1.txt”的文件中的每个整数进行排序,但编译时它什么也不做Java 在另一个文件中对txt文件的整数进行排序,java,java.util.scanner,filewriter,Java,Java.util.scanner,Filewriter,我必须在另一个名为“file_2.txt”的文件中对名为“file_1.txt”的文件中的每个整数进行排序,但编译时它什么也不做 import java.io.*; import java.util.Scanner; public static void main(String[] args){ try { Scanner fileScanner = new Scanner(new File("D:\\file_1.txt")); while(file
import java.io.*;
import java.util.Scanner;
public static void main(String[] args){
try
{
Scanner fileScanner = new Scanner(new File("D:\\file_1.txt"));
while(fileScanner.hasNextLine()){
Scanner lineScanner= new Scanner(fileScanner.nextLine());
while (lineScanner.hasNext() && lineScanner.hasNextInt())
{
try{
FileWriter file=new FileWriter("D:\\file_2.txt");
BufferedWriter writer=new BufferedWriter(file);
int s = lineScanner.nextInt();
writer.write(s);
writer.newLine();
writer.close();
file.close();
}
catch(FileNotFoundException e){
e.printStackTrace();
}
catch(IOException e){
e.printStackTrace();
}
}lineScanner.close();
}fileScanner.close();
}
catch(FileNotFoundException e){
e.printStackTrace();
}
}
}
您正在为第一个文件的每一行打开一个文件。你不想那么做 以下是您应该做什么的概述 1) 将一个文件中的所有数字加载到列表中
List<Integer> numbers = new ArrayList<Integer>();
Scanner fileScanner = new Scanner(new File("D:\\file_1.txt"));
while(fileScanner.hasNextLine()){
numbers.add(Integer.parseInt(fileScanner.nextLine());
}
3) 将列表写入新文件
try (PrintWriter pw = new PrintWriter(new File("D:\\file_2.txt"))) {
for (int x : numbers) {
pw.println(x);
}
}
您可以将文件读入
HashSet
,该文件将自动维护已排序的整数,然后将其写入另一个文件
// Hashset maintains the sorted list
Set<Integer> integers = new HashSet<Integer>();
Scanner fileScanner = new Scanner(new File("D:\\file_1.txt"));
while(fileScanner.hasNextLine())
{
integers.add(Integer.parseInt(fileScanner.nextLine());
}
try (PrintWriter writer = new PrintWriter(new File("D:\\file_2.txt")))
{
for (int integer : integers)
{
writer.println(integer);
}
}
//Hashset维护排序列表
Set integers=new HashSet();
Scanner fileScanner=new Scanner(新文件(“D:\\File\u 1.txt”);
while(fileScanner.hasNextLine())
{
add(Integer.parseInt(fileScanner.nextLine());
}
试试(PrintWriter=新的PrintWriter(新文件(“D:\\File\u 2.txt”))
{
for(整数:整数)
{
writer.println(整数);
}
}
您是否尝试过使用调试器逐行检查代码以查看发生了什么?您忘了问一个问题。我建议您使用谷歌搜索如何使用java读取文件,如何使用java编写文件以及如何使用java对整数进行排序。对于每种情况,都有成百上千的教程。没有任何帮助吗?您在至少打开一个文件,这样就完成了一些事情
// Hashset maintains the sorted list
Set<Integer> integers = new HashSet<Integer>();
Scanner fileScanner = new Scanner(new File("D:\\file_1.txt"));
while(fileScanner.hasNextLine())
{
integers.add(Integer.parseInt(fileScanner.nextLine());
}
try (PrintWriter writer = new PrintWriter(new File("D:\\file_2.txt")))
{
for (int integer : integers)
{
writer.println(integer);
}
}