【问题标题】:How to remove lines that start and end with specific Chars from a very long textfile in Java? [duplicate]如何从Java中非常长的文本文件中删除以特定字符开头和结尾的行? [复制]
【发布时间】:2018-08-31 05:42:50
【问题描述】:

我需要通过删除以“:”开头并以“,”结尾的任何部分来修复文本文件,同时保留逗号。我发现这很容易通过使用子字符串来完成,但是文本文件非常非常长,当我尝试这样做时,我得到一个错误“常量字符串太长”。所以我正在考虑用 Java 编辑文件本身,但是我在 FileReader 和 Writer 方面没有太多经验。有没有更简单的方法来解决字符串太长或直接编辑文件的唯一解决方案?

【问题讨论】:

  • 读取每一行,在字符串上执行你需要的小麦操作,将其写回一个新文件。删除旧文件并在原处重命名新文件
  • 你能用一些预期输出的例子来解释一下吗
  • 如果你碰巧在 *nix 并且不坚持使用 Java:sed -e 's/:.*,/,/' oldfile > newfile
  • 即使在 java 中使用正则表达式也会更容易。并将结果保存在新文件中。
  • 您能否分享文件中的一小部分文本样本 - 或显示类似文本的类似内容?

标签: java string


【解决方案1】:

您可以阅读非常大的文本文件Reading huge line of string from text file ,然后您可以将“:”替换为“,”结尾的:-

myString.replaceAll(":.*?,", ",");
//Example
String x="this :?anystring, is  :?anystring2jk, test";
System.out.println(x.replaceAll(":.*?,", ","));    //this , is  , test

【讨论】:

    猜你喜欢
    • 2014-08-23
    • 1970-01-01
    • 2017-09-03
    • 1970-01-01
    • 1970-01-01
    • 2021-12-19
    • 2015-05-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多