我正在编写一个小的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 。
我的问题是。
我应该使用哪种功能或替换参数来包含文件的所有数据多样性?
答案 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();
}
}
}