我需要您的帮助以下代码,我无法附加文本(Hi
在我的示例中)。正在创建文件,我在其中只有1 Hi
,但是我在它内部循环(当我运行cmd时我可以看到它正在循环并且系统打印几个嗨)但为什么我有在文件1 hi
?
我确信这是真的
fw = new FileWriter(file.getAbsoluteFile(), true);
try
{
LineNumberReader rdr = new LineNumberReader(new FileReader(directory+"/Ant_log.log"));
String timeStamp = new SimpleDateFormat("dd/MM/yyyy HH:mm:ss").format(Calendar.getInstance().getTime());
BufferedWriter bw = null;
FileWriter fw = null;
File file = new File(directory+"/Log-Missing-scripts.txt");
String line1 ="";
while((line1 = rdr.readLine())!= null)
{
// if file doesnt exists, then create it
if (!file.exists()) {
file.createNewFile();
}
// true = append file
fw = new FileWriter(file.getAbsoluteFile(), true);
bw = new BufferedWriter(fw);
System.out.println(rdr.getLineNumber());
if (rdr.getLineNumber()== 3)
{
System.out.println("Hi");
bw.write("Hi");
break;
}
}
bw.close();
writer.close();
}
catch(Exception e)
{
System.out.println("ERROR : In Log File");
}
}
答案 0 :(得分:1)
将您的file
和*Writer
创建代码移至循环之前,否则每次迭代都会创建新的Writer
。只有最后创建的Writer
正在关闭并刷新