使用java删除文本文件中的一行
我很难删除文本文件中的一行,我使用了这段代码,但我最终删除了所有的行,需要一些帮助 试着休假/ { File inputFile=new FileAdlawan+code1; File tempFile=新文件adalwantempfile; BufferedReader reader=新的BufferedReaderNewFileReaderInputFile; BufferedWriter writer=新的BufferedWriternew FileWritertempFile; 字符串lineToRemove=AdlawanJan2012; 串电流线; whilecurrentLine=reader.readLine!=null { //与lineToRemove比较时修剪换行符 字符串trimmedLine=currentLine.trim; iftrimmedLine.EqualSLINE删除 { writer.writecurrentLine; } } writer.close; reader.close; 如果!inputFile.delete { JOptionPane.showMessageDialognull,无法重命名文件; 回来 } 如果!tempFile.rename输入文件 JOptionPane.showMessageDialognull,无法重命名文件; } 卡奇 { JOptionPane.showMessageDialognull; } 文件上的数据如下所示: AdlawanJan2012年休假积分-0.6875 AdlawanFeb2012休假积分-0.6875 AdlawanMar2012年休假积分-0.6875 修剪线条后的预期结果: AdlawanFeb2012休假积分-0.6875 AdlawanMar2012年休假积分-0.6875使用java删除文本文件中的一行,java,file,file-io,delete-row,Java,File,File Io,Delete Row,我很难删除文本文件中的一行,我使用了这段代码,但我最终删除了所有的行,需要一些帮助 试着休假/ { File inputFile=new FileAdlawan+code1; File tempFile=新文件adalwantempfile; BufferedReader reader=新的BufferedReaderNewFileReaderInputFile; BufferedWriter writer=新的BufferedWriternew FileWritertempFile; 字符串l
谢谢…我认为如果文件中的行以lineToRemove变量开头,您可能会尝试删除该行,在这种情况下,您可能希望使用startsWith方法而不是equal方法
我认为,如果文件中的行以lineToRemove变量开头,那么您正在尝试删除该行,在这种情况下,您可能希望使用startsWith方法而不是equal方法 trim方法仅删除前导和尾随空格,而不删除空格后的字符。 trim方法仅删除前导和尾随空格,而不删除空格后的字符。
一行一行地读取文件内容并将其复制到另一个filetemporal文件(最好是随机访问文件)是一个好主意,并省略要删除的行。只需将其余部分复制到临时文件中,并省略要删除的行。然后将文件重命名为原始名称。请不要样品。我需要你自己做这件事,这样你就能自学成才。祝你好运一行一行地读取文件内容并将其复制到另一个文件中是个好主意。临时文件最好是随机访问文件,并省略要删除的行。只需将其余部分复制到临时文件中,并省略要删除的行。然后将文件重命名为原始名称。请不要样品。我需要你自己做这件事,这样你就能自学成才。祝你好运我能够删除两行,但被删除的行是:AdlawanFeb2012休假积分-0.6875和AdlawanMar2012休假积分-0.6875。我想删除行AdlawanJan2012休假积分-.06875。或者更准确地说,我想删除一个特定的行,在本例中是AdlawanJan2012年休假积分-.06875非常感谢您的帮助。我想您忘记添加了!在if条件下,其他行被删除的原因。应该是如果!trimmedLine.startsWithlineToRemove.是的,非常感谢,我确实忘记了…:再次非常感谢。startWith方法是关键。我可以删除两行,但删除的行是以下行:AdlawanFeb2012休假积分-0.6875和AdlawanMar2012休假积分-0.6875。我想删除行AdlawanJan2012休假积分-.06875。或者更准确地说,我想删除一个特定的行,在本例中是AdlawanJan2012年休假积分-.06875非常感谢您的帮助。我想您忘记添加了!在if条件下,其他行被删除的原因。应该是如果!trimmedLine.startsWithlineToRemove.是的,非常感谢,我确实忘记了…:再次非常感谢。startWith方法是关键。
while((currentLine = reader.readLine()) != null)
{
//trim newline when comparing with lineToRemove
String trimmedLine = currentLine.trim();
if(!trimmedLine.startsWith(lineToRemove))
{
// if current line not start with lineToRemove then write to file
writer.write(currentLine);
}
}
String lineToRemove = "AdlawanJan2012";
String trimmedLine = currentLine.trim();
if(trimmedLine.substring(0, 14).equals(lineToRemove)) {
//Your deletion logic
}