java - 如何删除文本文件中的特定字符串?

标签 java file-io

如何删除文本文件中的特定字符串?

最佳答案

找到该文件。

File file = new File("/path/to/file.txt");

创建一个临时文件(否则您必须先将所有内容读入 Java 内存)。

File temp = File.createTempFile("file", ".txt", file.getParentFile());

确定字符集。

String charset = "UTF-8";

确定您要删除的字符串。

String delete = "foo";

打开文件进行读取。

BufferedReader reader = new BufferedReader(new InputStreamReader(new FileInputStream(file), charset));

打开临时文件进行写入。

PrintWriter writer = new PrintWriter(new OutputStreamWriter(new FileOutputStream(temp), charset));

逐行读取文件。

for (String line; (line = reader.readLine()) != null;) {
    // ...
}

从该行中删除字符串。

    line = line.replace(delete, "");

将其写入临时文件。

    writer.println(line);

关闭读取器和写入器(最好在 finally block 中)。

reader.close();
writer.close();

删除文件。

file.delete();

重命名临时文件。

temp.renameTo(file);

另请参阅:

关于java - 如何删除文本文件中的特定字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5360209/

相关文章:

java - 针对单个键在映射中存储多个值

java - 在java中读/写一个大文件

javascript - 如何检查文件是否存在于 jQuery 或纯 JavaScript 中?

java - 在spark中访问多个数据集

java - 打印数组列表

java - JPA DELETE 操作中的一对多关系不起作用

java - 从 MX Player 获取 Activity 结果

python - 在文件对象上频繁调用 write() 并添加少量内容是否不好?

python - 从 Python 中的 .dat 文件中读取特定列

C++读取添加到目录的新文件