2016-07-08 6 views
-4

В настоящее время я работаю над заданием и много раз просматривал книгу и сайт java, и я не вижу, чтобы увидеть, где я ошибся.Загрузка файла .txt в массив 2D String

Я пытаюсь импортировать файл в 2D-массив. Я использую Scanner w/BufferedReader и FileReader для выбора аргумента командной строки (titanic.txt). Я через инструкцию // TEST if, чтобы увидеть, был ли он «fileInput» еще null. Нет проблем при построении, просто во время работы.

Вот часть моего кода:

//Declare Variables 
    String[][] titanicArray = new String[1308][6]; 
    int[] classArray = new int[1308]; 
    int[] survivedIntArray = new int[1308]; 
    double[] ageArray = new double[1308]; 
    double[] ticketPriceArray = new double[1308]; 
    String inputFile = null; 
    String answerStr = null; 
    int answer1 = 0; 

    Scanner fileInput = null; 
    Scanner userInput = new Scanner(System.in); 
    inputFile = args[0]; 

    //try statement to scan command-line argument and fill the array with the data 
    try { 
     fileInput = new Scanner(new BufferedReader(new FileReader(inputFile))); 
     //TEST 
     if (fileInput != null){ 
      System.out.println("Error Taking in file"); 
     } 

     for (int row = 0; row < titanicArray.length; row++) { 
      for (int col = 0; col < titanicArray[row].length; col++){ 
       while (fileInput.hasNext()){ 
        titanicArray[row][col] = fileInput.next(); 
       } 
      } 
     } 
    } finally { 
     if (fileInput != null){ 
      System.out.println("Error Taking in file"); 
      fileInput.close(); 
     }//End of If for closing Scanner 
    } //End of finally to close Scanner 

Примечание: titanic.txt имеет данные, как показано ниже (класс, Suvived, имя, пол, возраст, TicketPrice) ж/вкладку и без пробелов линий:

1 1 Аллен, мисс. Элизабет Walton женщина 29 211,3375

1 1 Allison, Master. Хадсон Тревор мужчина 0,9167 151,5500

1 0 Allison, мисс. Хелен Лорейн женщина 2 151,5500

1 0 Allison, г-н Хадсон Джошуа Крейтон мужчина 30 151,5500

1 0 Allison, миссис Хадсон JC (Бесси Уолдо Daniels) женщина 25 151.5500

1 1 Андерсон, г-н Гарри мужчина 48 26,5500

1 1 Эндрюс, мисс. Kornelia Феодосийский женщина 63 77,9583

+0

Какие «проблемы» у вас есть? –

+0

_This Code Does not works_, где именно проблема? – Sanjeev

ответ

3
if (fileInput != null){ 
     System.out.println("Error Taking in file"); 
    } 

В вашем коде есть заблуждение: Почему shoul fileInput != null проблема? В любом случае, всегда рекомендуется сначала очистить и упростить код, а затем обратиться за помощью. Некоторые идеи:

  • отдельная обработка файлов и файлы разбор на отдельные методы
  • использования примерочного с-ресурсом для упрощения обработки исключений и закрытие ресурса
0

имеет размер массив (столбцы), которые вы взяли слишком мал .next() дает вам первые шесть строк только тогда, когда имена на вашем входе кажутся слишком длинными.