逐行写入文件

时间:2015-09-23 06:32:18

标签: java file reverse writetofile

所以我的输入文件有一些句子,我想要反转每个句子中的单词并保持相同的句子顺序。然后我需要打印到文件。我的问题是我的输出文件只打印我的最后一句,反之。

import java.util.*;
import java.io.*; 


 public class Reverser {   //constructor   Scanner sc = null ;   public
 Reverser(File file)throws FileNotFoundException, IOException {
     sc = new Scanner (file);   }

      public void reverseLines(File outpr)throws FileNotFoundException, IOExeption{

     //PrintWriter pw = new PrintWriter(outpr);
     while(sc.hasNextLine()){
       String sentence = sc.nextLine();
       String[] words = sentence.split(" ");
       ArrayList<String> wordsarraylist = new ArrayList<String>(Arrays.asList(words));
       Collections.reverse(wordsarraylist);



      FileWriter fw = new FileWriter(outpr); 
      BufferedWriter bw = new BufferedWriter(fw);

      for(String str: wordsarraylist) {
         bw.write(str + " ");


        bw.newLine();
        bw.close();
      }

     }   }
       }

1 个答案:

答案 0 :(得分:1)

那是因为每次循环时,都会以覆盖模式重新打开文件。

在开始循环之前打开文件。

这里不要使用append选项,它只会让你不必要地打开/关闭文件。