java - 使用java删除文本文件中的一行

标签 java file file-io delete-row

我很难删除文本文件中的一行,我使用了这段代码,但我最终还是删除了所有行,需要一些帮助。

    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/

相关文章:

java - 如何将日期 dd/mm/yyyy 转换为 yyyy-MM-dd HH :mm:ss Android

java - JButton 仅在可见性设置为 True-Java 时才起作用

java - java中如何保存文本文件

xml - 在 ruby​​ 中写入 XML

Perl 通过正则表达式获取文件

java - 如何从 servlet 打开全新的浏览器

c++ - 可执行文件中的 "Hide"文件 (C++)

java - 在 Java 中读取 IDX 文件类型

python - 使用Python组合文件

C# - 从 Directory.GetDirectories() 和 Directory.GetFiles() 中排除目录和文件