2015-04-11 1 views
-3

Я не могу распечатать весь вывод в файле.BufferedWriter не работает. Какая ошибка заключается в сохранении вывода программы в файле.Ввод из файла и сохранение вывода в файле

public class delete { 

    public static void main(String[] args) throws IOException { 
     // TODO Auto-generated method stub 

     int alphabet=0; 
     char ch; 
     int n=0; 
     String line;   
     BufferedReader br = new BufferedReader(new FileReader("InputFileLocation")); 
     line= br.readLine(); 
     while ((line = br.readLine()) != null) { 
       for(int i=0;i<line.length();i++){ 

        ch=line.charAt(i); 
          if(ch=='a') 
           alphabet ++; 
       } 

          BufferedWriter bw = new BufferedWriter(new FileWriter("OutputFileLocation")); 
          n++;  
          System.out.println("case#"+n+":"+alphabet); 
          bw.write(String.valueOf(alphabet)); 
          bw.close(); 
          alphabet=0; 

     } 
     br.close(); 

    } 
} 

ответ

0

без запуска этого я заметил, что вы выбросите первую строку, извлекая ее, а затем извлечения еще одну строку в первом запуске вашего состояния.

Кроме того, если вы записываете каждую строку в выходной файл, вы, вероятно, захотите перенести свою инициализацию bw вне цикла while. По крайней мере, вы хотите использовать конструктор FileWriter (String, boolean) вместо создания нового файла.

0

Не создавайте новый BufferedWriter в цикле, это плохой дизайн.

вы можете попробовать положить bw.flush() перед тем, как закрыть его.

bw.close() неявно называют flush, но у меня была схожая проблема с этим, я должен был явно вызвать flush для работы.