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

Java替换文本文件中的特定字符串

龚宏壮
2023-03-14
问题内容

我有一个名为log.txt的文本文件,它具有以下数据

1,,Mon May 05 00:05:45 WST 2014,textFiles/a.txt,images/download.jpg
2,,Mon May 05 00:05:45 WST 2014,textFiles/a.txt,images/download.jpg

第一个逗号之前的数字是指定每个项目的索引

我想做的是读取文件,然后将给定行中字符串的一部分(例如textFiles / a.txt)替换为另一值(例如something / bob.txt)。

这就是我到目前为止

    File log= new File("log.txt");
                    String search = "1,,Mon May 05 00:05:45 WST 2014,textFiles/a.txt,images/download.jpg;
                    //file reading
                    FileReader fr = new FileReader(log);
                    String s;
                    try (BufferedReader br = new BufferedReader(fr)) {

                        while ((s = br.readLine()) != null) {
                            if (s.equals(search)) {
                                //not sure what to do here
                            }
                        }
                    }

问题答案:

一种方法是使用String.replaceAll()

File log= new File("log.txt");
String search = "textFiles/a\\.txt";  // <- changed to work with String.replaceAll()
String replacement = "something/bob.txt";
//file reading
FileReader fr = new FileReader(log);
String s;
try {
    BufferedReader br = new BufferedReader(fr);

    while ((s = br.readLine()) != null) {
        s.replaceAll(search, replacement);
        // do something with the resulting line
    }
}

您还可以使用正则表达式,或String.indexOf()查找搜索字符串在一行中的何处。



 类似资料:
  • 我有一个类似的情况,如果找不到类似的字符串,我需要更改批处理文件中的一行。 假设我有一个如下代码(我知道这不是正确的代码,因为它只是一个虚拟的) 现在我想让java读取上面的文件,找到ENV作为DEV并更改值,如myDBDEV、myExecelDEV、MyAPIURLDEV等。 我可以使用下面的代码找到行号 我已经尝试了下面的代码,但这不是返回行号,所以我使用上面的方法 使用java在文本文件中查

  • 问题内容: 我需要打开一个文本文件并替换一个字符串。我需要这个 到目前为止,这是我所拥有的,但是除了多余的空格外,我看不到文本文件中的任何更改。 我该怎么做? 问题答案: 这项工作:

  • 问题内容: 我一直试图读取文件,然后将读取的内容放入字符串中。然后,该字符串将按行拆分为多个字符串: input.txt读取为: 一个 强壮的小鸟 与一个非常 宽容的心 去 一天上学 忘记了他的食物 家 然而, 将文本变成混乱的混乱: 他的食物 我不确定替换换行符会如何严重破坏文本本身 问题答案: 我猜您正在使用Windows运行代码。请注意,如果您打印出结果字符串的长度,它将显示超过100个字符

  • 问题内容: 我正在寻找一种替换文件中的字符串而不将整个文件读入内存的方法。通常我会使用Reader和Writer,例如以下内容: 但是,我想就地进行替换,并且不认为可以同时在同一文件上打开Reader和Writer。另外,我正在使用Java 1.4,因此无法访问NIO,扫描仪等。 谢谢唐 问题答案: 通常无法对文件进行“就地”替换,除非替换的长度与原始长度完全相同。否则,文件将需要增大,从而将所有

  • 我试图开发一个由多个数组和文本视图组成的应用程序,我遇到了一个问题。 我有3个文本视图和2个数组。 我的一个数组包含句子。我的第一个问题是如何突出每个句子中的特定单词?例如:“这是我的第一个数组项”,我需要突出显示字符串中的一个单词,这样当它显示在文本视图1中时,它就会像这样出现..."这是我的第一个数组物品" 我的另一个数组包含单词。它们显示在textview2中,也应高亮显示。我的下一个问题是