Java在文件中找到一行并将其删除

我正在寻找一个小的代码段,它将在文件中找到一行并删除该行(不是内容而是行),但是找不到。因此,例如,我在以下文件中:

myFile.txt:

aaa

bbb

ccc

ddd

需要具有这样的功能:public void removeLine(String lineContent),如果通过 removeLine("bbb"),我将获得如下文件:

myFile.txt:

aaa

ccc

ddd

回答:

该解决方案可能不是最佳或漂亮的,但它可以工作。它逐行读取输入文件,并将每一行写到一个临时输出文件中。每当遇到符合您要查找的内容的行时,它都会跳过将其写出的操作。然后,它重命名输出文件。我从示例中省略了错误处理,关闭读者/作家等。我还假设您要查找的行中没有前导或尾随空格。根据需要更改trim()周围的代码,以便找到匹配项。

File inputFile = new File("myFile.txt");

File tempFile = new File("myTempFile.txt");

BufferedReader reader = new BufferedReader(new FileReader(inputFile));

BufferedWriter writer = new BufferedWriter(new FileWriter(tempFile));

String lineToRemove = "bbb";

String currentLine;

while((currentLine = reader.readLine()) != null) {

// trim newline when comparing with lineToRemove

String trimmedLine = currentLine.trim();

if(trimmedLine.equals(lineToRemove)) continue;

writer.write(currentLine + System.getProperty("line.separator"));

}

writer.close();

reader.close();

boolean successful = tempFile.renameTo(inputFile);

以上是 Java在文件中找到一行并将其删除 的全部内容, 来源链接: utcz.com/qa/398426.html

回到顶部