2017-02-25 49 views
0

我必须在称为“file_2.txt”的另一个文件中对称为“file_1.txt”的文件的每个整数进行排序,但是当我编译它时什么也不做。在另一个文件中对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(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(); 
    } 
} 
} 
+0

您是否尝试过使用调试器逐行浏览代码以查看会发生什么? –

+0

你忘了问一个问题。 – Mureinik

+0

我会建议你谷歌如何使用java读取文件,如何使用java编写文件以及如何使用java对整数进行排序。这里有几百个教程。 – opensam

回答

0

您要为第一个文件的每一行打开一个文件。你不想那么做...

下面是你应该做的一般概述。

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()); 
} 

2)排序号码

Collections.sort(numbers); 

3)收件清单到一个新的文件

try (PrintWriter pw = new PrintWriter(new File("D:\\file_2.txt"))) { 
    for (int x : numbers) { 
     pw.println(x); 
    } 
} 
0

可以读取文件到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); 
    } 
} 
相关问题