创建时不会在文件中追加的java字符串

时间:2017-03-17 07:00:34

标签: java

我需要您的帮助以下代码,我无法附加文本(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");

            }
        }

1 个答案:

答案 0 :(得分:1)

将您的file*Writer创建代码移至循环之前,否则每次迭代都会创建新的Writer。只有最后创建的Writer正在关闭并刷新