2015-01-17 1 views
1
class Start 
{ 
    File plikIN; 
    Scanner in; 
    PrintWriter out; 

    Start(String input, String output) 
    { 
     plikIN = new File(input); 
     try{ 
     in = new Scanner(plikIN); 
     out = new PrintWriter(output); 
     } catch (FileNotFoundException e) {System.out.println("Nie odnaleziono podanego pliku\n"+e);} 
    } 

    private void saveing() throws IOException 
    { 
     String word; 
     int wordLength; 
     String wordTable[]; 
     char c; 

     while((word = in.next()) != null) 
     { 
      wordLength = word.length(); 
      wordTable = new String[wordLength]; 
      for(int k=0; k<wordTable.length; ++k) 
      { 
       c = word.charAt(k); 
       out.println(c); 
      } 
     } 
     out.close(); 
    } 

    public static void main(String[] args) throws IOException 
    { 
     String nazwaPlikuWejsciowego = args[0]; 
     String nazwaPlikuWyjsciowego = args[1]; 
     Start doit = new Start(nazwaPlikuWejsciowego, nazwaPlikuWyjsciowego); 
     doit.saveing(); 

    } 
} 

Моя проблема сохраняется в файле. После описанного выше метода saveing файл не содержит ни одного символа. Например, когда я перемещаю out.close() на while, файл содержит одно слово. Когда out.close() находится в for, программа сохраняет только один символ. Зачем?PrintWriter не сохраняет всех символов

+0

Ваш цикл 'while ((word = in.next())' будет вызывать ошибку, см. Мой ответ. – Titus

ответ

3

добавить out.flush() до out.close().

Вы должны очистить байты на диск, прежде чем закрыть его ..

+0

Это, а также использовать id try {} catch() {} finally// закрыть ресурсы – Voqus

+2

В соответствии с javadoc 'close':' Закрывает поток, сначала промывая его'. Поэтому вызов 'flush' сначала - не что иное, как грузовой культ. http://www.docjar.com/html/api /java/io/Writer.java.html http://en.wikipedia.org/wiki/Cargo_cult_programming – Andreas

0

Этот ((word = in.next()) != null) сгенерирует исключение. in.next() не возвращает null, когда элементов больше нет. Посмотрите на API

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

  • Нет связанных вопросов^_^