使用java从文本文件中删除最后一个空行

时间:2013-06-01 02:39:33

标签: java file

首先,我正在写一个文件,我需要再次读取该文件,但我所识别的是,正在编写的文件末尾有一个空行,这会导致问题。虽然我使用replaceAll(“\ s”,“”)命令来避免在写入文件时字符串中的任何空格但它再次在末尾创建空格或空行,所以如何删除它以确保文件结束字符串结束而不是在文件末尾有空格。 这是chuck它有点冗长,但如果需要我也会发布那个

str2= str2+","+str;
str2= str2.replaceAll("\\s","");
str2.replaceAll("(?m)^[ \t]*\r?\n", "");
File testFile1 = new File("G:/softwares/xampp/htdocs/Simulator/testFile1.csv");
File parent = testFile1.getParentFile();
if(!parent.exists() && !parent.mkdirs())
{
    throw new IllegalStateException("Couldn't create dir: " + parent);
}
FileWriter fw = new FileWriter(testFile1,false);        
PrintWriter pw = new PrintWriter(fw);
pw.println(str2);
pw.flush();
pw.close();

2 个答案:

答案 0 :(得分:1)

您的str2.replaceAll()可能会在最后更换一行,并将该行留空。

在第二个str2.trim()之后使用str2 = str2.replaceAll("\\s","")或移动replaceAll()

这可能无法解决问题,因为PrintWriter会在每行后添加\n。尝试使用OutputStream

替换:

FileWriter fw = new FileWriter(testFile1,false);        
PrintWriter pw = new PrintWriter(fw);
pw.println(str2);
pw.flush();
pw.close();

使用:

FileOutputStream out = new FileOutputStream(testFile1);
out.write(str2.trim().getBytes());
out.close();

答案 1 :(得分:0)

写作时(或阅读时)你可能会trim()你的字符串:

str2.trim();

对于经验,我必须说当你在文件中写入时,通常会添加一个空白区域(在装配程序中发生在我身上)。因此,如果您再次阅读任何文件,您可以trim()内容字符串,作为另一种解决方案。