当前位置: 首页 > 面试题库 >

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

鞠嘉誉
2023-03-14
问题内容

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


问题答案:

找到文件。

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块中)。

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

删除文件。

file.delete();

重命名临时文件。

temp.renameTo(file);

也可以看看:

  • Java教程-课程:基本I / O


 类似资料:
  • 问题内容: 我有绳子。 如何在离开字符串的同时从字符串中删除? 问题答案: 对于所有要丢弃的事件,请使用: PS:replace函数返回一个新字符串,并使原始字符串保持不变,因此在replace()调用之后使用该函数的返回值。

  • 我有一个字符串。 在保留的同时,如何从字符串中删除?

  • 问题内容: 例如,我正在从文本文件中提取文本String,我需要这些词来形成数组。但是,当我执行所有这些操作时,有些单词以逗号(,)或句号(。)结尾,甚至附有括号(这完全是正常现象)。 我要做的是摆脱那些角色。我一直在尝试使用Java中的预定义String方法来做到这一点,但我还是无法解决。 问题答案: 用: replaceAll采用正则表达式。这个: …寻找每个逗号和/或句号。

  • 问题内容: 我有以下数据,需要将它们全部放在一行中。 我有这个: 我需要这个: 这些命令均无法完美运行。 他们中的大多数让数据像这样: 问题答案: 编辑: 如果此处发布的所有命令均不起作用,则除了换行符以外,您还有其他用途。可能文件中有DOS / Windows行尾(尽管我希望Perl解决方案即使在这种情况下也可以工作)? 尝试: 如果这不起作用,那么您将不得不更仔细地检查文件(例如,在十六进制编

  • 问题内容: 我有一个名为log.txt的文本文件,它具有以下数据 第一个逗号之前的数字是指定每个项目的索引。 我想做的是读取文件,然后将给定行中字符串的一部分(例如textFiles / a.txt)替换为另一值(例如something / bob.txt)。 这就是我到目前为止 问题答案: 一种方法是使用: 您还可以使用正则表达式,或查找搜索字符串在一行中的何处。

  • 问题内容: 如何使用Java删除文本文件的前两行? 问题答案: 这是番石榴解决方案: 是的,整个文件都被读到内存中,因此不要尝试使用庞大的服务器日志文件。