【问题标题】:How to keep some Strings in a text file?如何在文本文件中保留一些字符串?
【发布时间】:2015-11-30 12:51:21
【问题描述】:

我有一个格式如下的文本文件:

ab
cd
ef
gh
ij
..

我想擦除“ef”之后的字符串,我的意思是在运行我的程序后,文本文件结构是这样的:

ab
cd 
ef

我正在使用 netbeans IDE 并使用 java 代码。有人可以帮忙吗? 这是我尝试过的代码,但它只是在字符串中的“ef”之前保留字符串,但我不知道该怎么做!

BufferedReader br = new BufferedReader(new FileReader("E:\\info.txt"));
try {
    StringBuilder sb = new StringBuilder();
    String line = br.readLine();

    while (!(line.equals("ef"))) {
        sb.append(line);
       // sb.append(System.lineSeparator());
        line = br.readLine();
    }
    String everything = sb.toString();
    System.out.print(everything);
   // System.out.print(sb);
} finally {
    br.close();
}

【问题讨论】:

  • 你试过的代码在哪里?
  • 我添加了我的代码,但它根本不完整。 @Ramanlfc
  • 现在你遍历所有行,直到到达“ef”然后停止。所以难怪你会得到那个输出。
  • 但我的代码不会更改我的文件,我希望以我所说的形式更正文本文件。 @弗洛里安

标签: java file text


【解决方案1】:

这是一个更正文件的示例

final String fileName = "E:\\info.txt";
String everything = "";

try (BufferedReader br = new BufferedReader(new FileReader(fileName))) {
  StringBuilder sb = new StringBuilder();
  String line = br.readLine();

  while (!(line.equals("ef"))) {
    sb.append(line).append("\n");
    // sb.append(System.lineSeparator());
    line = br.readLine();
  }

  sb.append(line);
  everything = sb.toString();
  System.out.print(everything);
}

final File file = new File(fileName);
file.delete();

try (FileWriter writer = new FileWriter(fileName)) {
  writer.write(everything);
}

【讨论】:

    【解决方案2】:

    您可以使用 Apache commons-io 的 FileUtils,如下例所示:

    private final String FILE_NAME = "E:\\info.txt";
    
    public void test() throws IOException {
        File file = new File(FILE_NAME);
        List<String> strings = FileUtils.readLines(file);
        int ef = strings.indexOf("ef");
        List<String> stringBeforeEF = strings.subList(0, ef);
        FileUtils.writeLines(file, stringBeforeEF);
    }
    

    【讨论】:

      猜你喜欢
      • 2019-12-21
      • 1970-01-01
      • 1970-01-01
      • 2019-02-18
      • 1970-01-01
      • 2018-04-06
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多