2016-12-07 6 views
0

мне нужна помощь со следующей code-Java - Чтение файла .txt и хранение в массиве

Программы должно читать текстовый файл, который представляет собой список целых чисел, отсортировать их по возрастанию или убыванию в зависимости от выбора пользователя и экспорта в виде текстового файла. Код работал нормально, когда целые числа были включены внутри кода в виде массива, прежде чем я попытался прочитать файл с java в первом методе. После этого ничего не было напечатано в соответствии с пользовательским вводом.

Вот что я в настоящее время:

import java.io.File; 
import java.io.FileNotFoundException; 
import java.util.Arrays; 
import java.util.Scanner; 

public class BubbleSorting { 

public static int[] readFiles(String file) throws FileNotFoundException{ 
     File f= new File("input.txt"); 
     Scanner x= new Scanner(f); 

     int [] intArray= new int[100]; 

     Scanner s1= new Scanner(f); 

     for (int i=0; i< intArray.length; i++) 
      intArray[i] = s1.nextInt(); 

     return intArray; 
    } 

public static void main (String[] args) throws FileNotFoundException { 

int[] intArray= readFiles("input.txt"); 

System.out.println("Select from the following options:\n (A) Sort integers by ascending order \n (B) Sort by descending order " 
     + "\n (C) Both. \n Please input your selection below."); 

Scanner a = new Scanner(System.in); 
String choice = a.nextLine(); 

if (choice.equals("A") || choice.equals("a")) { 

    bubbleSortInASC(intArray); 

    System.out.println("You have chosen to sort in ascending order:"); 
    //print array after sorting using bubble sort algorithm 

    for(int i=0; i < intArray.length; i++){ 
      System.out.println(intArray[i]);}} 

else if (choice.equals("B") || choice.equals("b")) { 

//sort an array in descending order using bubble sort algorithm 
bubbleSortDSC(intArray); 

System.out.println("You have chosen to sort in descending order:"); 
//print array after sorting using bubble sort algorithm 

for(int i=0; i < intArray.length; i++){ 
     System.out.println(intArray[i] + " "); 
}} 

else if (choice.equals("C") || choice.equals("c")) { 

    System.out.println("You have chosen to sort in both ascending and descending order."); 

    bubbleSortInASC(intArray); 
    System.out.println("In ascending order: "); 
    for(int i=0; i < intArray.length; i++){ 
     System.out.println(intArray[i]+ " "); } 

    bubbleSortDSC(intArray); 
    System.out.println("\nIn descending order: "); 
    for(int i=0; i < intArray.length; i++){ 
     System.out.println(intArray[i]+ " "); } 
} 
else { 
    System.out.println("That was not one of the options provided. Please try again."); 
} 

    } 

public static void bubbleSortDSC(int intArray[]) { 

    int n = intArray.length; 
    int temp = 0; 

    for(int i=0; i < n; i++){ 
      for(int j=1; j < (n-i); j++){ 

        if(intArray[j-1] < intArray[j]){ 
          //swap the elements! 
          temp = intArray[j-1]; 
          intArray[j-1] = intArray[j]; 
          intArray[j] = temp;}  
      }} 
    } 

public static void bubbleSortInASC(int numbers[]) 
    { 
     int temp; 

     for(int i = 0; i < numbers.length; i++) 
     { 
      for(int j = 1; j < (numbers.length -i); j++) 
      { 
       //if numbers[j-1] > numbers[j], swap the elements 
       if(numbers[j-1] > numbers[j]) 
       { 
        temp = numbers[j-1]; 
        numbers[j-1]=numbers[j]; 
        numbers[j]=temp; 
       } 
      } 
     }} 
} 

Любая помощь будет оценена.

ответ

0

заменить readFiles method с

public static int[] readFiles(String file) throws FileNotFoundException{ 
    File f= new File("input.txt"); 
    //Scanner x= new Scanner(f); //you havent used it 

    int [] intArray= new int[10]; 
    Scanner s1= new Scanner(f); 
    for (int i=0; i< intArray.length; i++) 
     intArray[i] = s1.nextInt(); 
    s1.close();//should close inputstream after use it 
    return intArray; 
} 

и убедитесь, что input.txt находится в текущем каталоге.