使用特定条件在java中修改.txt文件

时间:2018-02-09 12:37:47

标签: java text editor

我正在编写一个小的Java代码来修改txt。

在我尝试使用的内容中,我们将这个长文件导入到我们的问责制系统中,但是它产生的一些信息对会计师来说并不重要。只是让他的工作更加努力。

该文件的行如下:

00;1;1;22012018;"1779";"C";0;0;139084;0;2;0;"RECEBTO TITULO 001/000664/02 - EDGAR ROSA DA TRINDADE";7;19247028000;4561000150;1;

我想要做的就是删除第一行中的 001 / / 02

输出就像(2000+行):

00;1;1;22012018;"1779";"C";0;0;139084;0;2;0;"RECEBTO TITULO 000664 - EDGAR ROSA DA TRINDADE";7;19247028000;4561000150;1;

它不是固定值,因此文件上只能 .replaceall()。它的两侧各有2到8位数字或条形前后的间距。像这样 0000123/123

我的问题是。

我应该使用哪种功能或替换参数来包含文件的所有数据多样性?

1 个答案:

答案 0 :(得分:0)

只需逐行读取文件并使用java regex删除char序列,然后将其写入新文件。

public class Example {

    private static final String PREFIX = "\\d+/";
    private static final String SUFFIX = "/.*-";

    public static void main(String[] args) throws IOException{
        File target = new File("target.txt");
        FileWriter fileWriter = new FileWriter(target);

        File source = new File("source.txt");
        FileReader fileReader = new FileReader(source);
        try {
            BufferedReader bufferedReader = new BufferedReader(fileReader);
            String line;
            while ((line = bufferedReader.readLine()) != null) {
                fileWriter.write(line.replaceFirst(PREFIX, "").replaceFirst(SUFFIX, " -"));
                fileWriter.write("\r\n");
            }
        }  finally {
            fileReader.close();
            fileWriter.close();
        }
    }
}