我很难删除文本文件中的一行,我使用了这段代码,但我最终还是删除了所有行,需要一些帮助。
try //vacation leave/
{
File inputFile = new File("Adlawan" + code1);
File tempFile = new File("AdalwanTempFile");
BufferedReader reader = new BufferedReader(new FileReader(inputFile));
BufferedWriter writer = new BufferedWriter(new FileWriter(tempFile));
String lineToRemove = "AdlawanJan2012";
String currentLine;
while((currentLine = reader.readLine()) != null)
{
//trim newline when comparing with lineToRemove
String trimmedLine = currentLine.trim();
if(trimmedLine.equals(lineToRemove))
{
writer.write(currentLine);
}
}
writer.close();
reader.close();
if(!inputFile.delete())
{
JOptionPane.showMessageDialog(null, "Could not rename file");
return;
}
if(!tempFile.renameTo(inputFile))
JOptionPane.showMessageDialog(null, "Could not rename file");
}
catch(Exception e)
{
JOptionPane.showMessageDialog(null, " ");
}
文件中的数据如下所示:
AdlawanJan2012 休假学分 -0.6875
AdlawanFeb2012 休假学分 -0.6875
AdlawanMar2012 休假学分 -0.6875
修剪线条后的期望结果:
AdlawanFeb2012 休假学分 -0.6875
AdlawanMar2012 休假学分 -0.6875
谢谢...
最佳答案
如果行以 "lineToRemove" 变量开头,我认为您正在尝试删除文件中的行,在这种情况下您可能想要使用 "startsWith" 方法而不是 "equal" 方法。
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);
}
}
关于java - 使用java删除文本文件中的一行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11645881/