我在Java中编写了一个方法来删除文件每行末尾的插入符号。方法如下:
//Creates a new file, and deletes the temp file
public void createFinalFile() throws FileNotFoundException, IOException{
// read file data into a String
String data1 = new Scanner(new File(fileDirectoryString + "tempFile.txt")).useDelimiter("\\Z").next();
// replace all ^ from end of line using (?m) - MULTILINE switch
data1 = data1.replaceAll("(?m)\\^$", "");
PrintWriter docketFile3 = new PrintWriter(new FileWriter(fileDirectoryString + "Forclosure-Docket-"+startingYear+startingMonth+startingDay+"-"+endingYear+endingMonth+endingDay+".txt", true));
docketFile3.write(data1);
}
问题是有时临时文件会包含所有信息,但是在运行该方法后,新创建的文件是空白的,我不知道为什么。临时文件的一个示例是:
04/02/2014^BR-12-005193^09/12/2012^P1^SF^DEPOSIT AMOUNT PAID CUYAHOGA COUNTY SHERIFF^
04/02/2014^BR-12-005193^09/12/2012^P1^CS^COST PAYMENT $860.90 CUYAHOGA COUNTY SHERIFF^
虽然它应该只删除每行末尾的插入符号,但似乎是删除每一行。
答案 0 :(得分:2)
你的正则表达不是这样做的。虽然这个功能总体上让我想起this而不是其他任何东西,但它应该有效。可能出错的一件事是你没有关闭你的输出文件。在将数据写出后,将docketFile3.close();
添加为一行。