正则表达式擦除文件

时间:2014-04-02 23:54:10

标签: java regex

我在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^

虽然它应该只删除每行末尾的插入符号,但似乎是删除每一行。

1 个答案:

答案 0 :(得分:2)

你的正则表达不是这样做的。虽然这个功能总体上让我想起this而不是其他任何东西,但它应该有效。可能出错的一件事是你没有关闭你的输出文件。在将数据写出后,将docketFile3.close();添加为一行。