2013-04-28 7 views
1

Для моего задания мне нужно прочитать из файла с 25 номерами, затем упорядочить его, а затем записать в другой файл. Я не могу придумать способ передать массив в моем коде (в строку массива), чтобы записать файл в порядок и записать его в другой файл.
Это, наверное, простой вопрос, но у меня есть небольшая проблема, пытаясь передать все. Спасибо заранее.Прочитать файл, отсортировать его, записать в другой файл

public static void main(String[] args) throws IOException{ 
    int[] number; 
    number = processFile ("Destination not specified"); 
    swapIndex(number); 
    writeToFile ("Destination not specified"); 

} 

public static int[] processFile (String filename) throws IOException, FileNotFoundException{ 

    BufferedReader inputReader = new BufferedReader (new InputStreamReader(new FileInputStream(filename))); 

    String line; 
    int i = 0; 
    int[] value = new int [25]; 
    while ((line = inputReader.readLine()) != null){ 
    int num = Integer.parseInt (line);  // Convert string to integer. 
      value[i] = num;  
      i++; 
      System.out.println (num); // Test 
    } 
    inputReader.close(); 
    return value; 
    // Read the 25 numbers and return it 
} 

public static void swapIndex (int[] num){ // BUBBLE sort 
    boolean order = true; 
    int temp; 

    while (order){ 
     order = false; 
     for (int i = 0; i <num.length-1; i++){ 
      if (num[i]> num[i+1]){ 
       temp = num[i]; //set index to temp 
       num[i] = num [i+1]; // swap 
       num[i+1]= temp; //set index to the higher number before it 
       order = true; 
      } 
     } 
    }   
} // Method swapIndex 

public static void writeToFile (String filename) throws IOException { 
    BufferedWriter outputWriter = new BufferedWriter(new FileWriter(filename)); 

     outputWriter.write (String.valueOf()); // Need to take the string value of the array 
     outputWriter.flush(); 
     outputWriter.newLine(); 
} 
+0

где ты застрял? Предоставляет ли оно какие-либо исключения/ошибки? – gurvinder372

+0

Я просто пытаюсь найти способ передать все. Особенно, что нужно передать для строкового значения в методе writeToFile. – Bao

ответ

0

Вместо swapIndex (номер) вы использовали для сортировки целочисленного массива, можно использовать Arrays.sort (номер), а затем передать этот целочисленный массив (номер) в качестве одного из аргументов метода WriteToFile, перебирать те элементы целочисленного массива (числа) и могут добавлять в файл.

1

Я хотел бы сделать это таким образом

Set<Integer> set = new TreeSet<Integer>(); 
    Scanner sc = new Scanner(new File("1.txt")); 
    while (sc.hasNextInt()) { 
     System.out.println(sc.nextInt()); 
    } 
    sc.close(); 
    PrintWriter pw = new PrintWriter(new File("2.txt")); 
    for (int i : set) { 
     pw.println(i); 
    } 
    pw.close(); 
Смежные вопросы