写文件时出错 - 它会加倍

时间:2013-11-22 04:37:32

标签: java file

很抱歉标题听起来不清楚,我只是不知道如何解释它。

所以,我正在尝试从文件中读取一些行,修改它们然后将它们添加到另一个文件中。

这是原始文件:

line number one
line number two
line number three

等等......

但是当把它打印到另一个文件中时,我得到了这个:

line number one
line number one line number one
line number one line number one line number two
line number one line number one line number two line number two

这是我的代码

这是读取原始文件的部分

try {
   File f = new File(path);
   try (FileReader fr = new FileReader(f); BufferedReader br = new BufferedReader(fr)) {

   while ((aux=br.readLine())!=null) {

       //easyDecryp is the method that modifies the line.
       //there's nothing wrong with it.

       output += easyDecryp(aux)+"\n";
       aux="";
   }
   br.close();
   fr.close();
}       

} catch(IOException e) {
System.out.println("Error: "+e.getMessage());
}

在这里我写入新的

try {
   File f = new File(path);
   try (FileWriter fw = new FileWriter(f); PrintWriter pw = new PrintWriter(fw)) {
       pw.println(output);
   } 
} catch(IOException e) {
   System.out.println("Error: "+e.getMessage());
}

输出是保存线条的变量。他们都是。 它应该逐行读取,然后写入新文件,如下所示:

output = line1
//New line added
output = line1 \n line2

//Note the new line tag between every line

1 个答案:

答案 0 :(得分:1)

我认为easyDecryp(aux)正在返回该行,然后您正在执行+=。这就是为什么你的系列会被复制的原因。