我想在特定字符串之后删除文件的内容,我做了一个临时文件并将数据复制到该文件中,并在完成重命名帽子文件后。
但是当我尝试时,我无法重命名文件,也无法删除旧文件。下面给出了我的代码,输出令人惊讶的是,如果它处于循环中,如何调用最后一行。
更新
File inputFile = new File(propertiesFilePath+"/"+fileName);
File tempFile = new File(propertiesFilePath+"/tempfile.properties");
BufferedWriter writer=null;
BufferedReader reader =null;
System.out.println("Input file "+inputFile.exists()+" "+tempFile.exists());
try{
reader = new BufferedReader(new FileReader(inputFile));
writer = new BufferedWriter(new FileWriter(tempFile));
String currentLine=null;
while((currentLine = reader.readLine()) != null) {
if(currentLine.contains(KEY_STORE)) break;
System.out.println("Lines "+currentLine);
writer.write(currentLine);
}
}catch(Exception e){
System.out.println("Exception in deleting config");
}finally{
writer.close();
reader.close();
}
System.err.println("Inpute file delete "+inputFile.delete());
return tempFile.renameTo(inputFile);
输出:
Input file true true
Lines # ----------------------------------------------
Inpute file delete false Renamed false
Lines # ---------------------------------------------------
Lines #
Lines # ----------------------------------------------------
Lines #
Lines # --------------------------------------------------------
Lines # ---------------------------------------------------------
Lines # -------------------
Lines #
Lines # ---------------------------------------------------------------------------------
-----------------------
Lines #------------------------------------------------------------------
Lines # ----------------------
Lines -----------------------
Lines
我已经用(------)替换了文本,但是如何在循环完成之前打印在外观之外的 Sysout。
有没有更好的方法来实现我想要的。