2016-04-28 2 views
-1

чтения файла:Как мне исправить мой метод чтения файлов?

Этот метод имеет единственный параметр, который является именем файла.
Цель этого метода - прочитать содержимое файла в массиве.
Вы должны использовать блок try/catch и объект сканера.
Первая строка файла имеет целое число, которое указывает количество строк.
Прочитайте это значение в переменной numberLines.
Вызовите nextLine снова, чтобы отбросить остальную часть линии!
Выделите массив fileContents, чтобы иметь числовой элемент.
Напишите цикл for, который считывает указанное количество строк в fileContents.
Код исключения исключений ничего не должен делать или сообщить об ошибке.

Это мой текущий код. Что я делаю не так?

public void readFile(String filename) { 
     // TODO Auto-generated method stub 
     try { 

      Scanner read = new Scanner(new File(filename)); 
      int[] fileContents = {numberLines}; 
      numberLines = read.nextInt(); 
      read.nextLine(); 

      for(int i = 0; i < numberLines; i ++){ 

       fileContents[i] = read.nextInt(); 

       read.close(); 
      } 

     } catch (FileNotFoundException e) { 
      // TODO Auto-generated catch block 
      e.printStackTrace(); 
     } 

    } 

ответ

0
public void readFile(String filename) { 
     // TODO Auto-generated method stub 
     try { 

      Scanner read = new Scanner(new File(filename)); 
      //int[] fileContents = {numberLines}; //fileContents has one element 
      numberLines = read.nextInt(); 
      //you can read numberLines first and then create fileContents array as you wish 
      int[] fileContents = new int[numberLines]; 
      //if each line only contains a number, you can read line to String and convert it to int 
      //read.nextLine(); 

      for(int i = 0; i < numberLines; i ++){ 
       String nextLine = read.nextLine(); 
       //fileContents[i] = read.nextInt(); 
       fileContents[i] = Integer.parseInt(nextLine); 
       //read.close(); 
      } 
      //close read after all lines were read 
      read.close(); 
     } catch (FileNotFoundException e) { 
      // TODO Auto-generated catch block 
      e.printStackTrace(); 
     } 

    } 

Некоторые исключения, может быть выброшен:

NoSuchElementException - если ни одна строка не была найдена

IllegalStateException - если этот сканер закрыт

+0

Я пытался и до сих пор говорит, что не может вызвать метод .... –

+0

Какие строки вы получаете это предупреждение (или ошибку)? –

+0

Он не говорит. Когда я отправляю задание, эта часть его просто говорит: «невозможно вызвать метод: readFile» –

Смежные вопросы