如何在java中读取固定长度的文件

问题描述 投票:-2回答:1

我正在阅读固定长度的java平面文件我是新手,任何人都可以帮我解决固定长度读卡器的问题吗?

java parsing reader
1个回答
0
投票

当它是具有固定长度线的文本文件时,普通阅读器就足够了。

这假定每条记录末尾都有换行符。

List<MyRecord> result = new ArrayList<>();

Path file = Paths.get("C:/Import/20190308.txt");
Charset charset = Charset.defaultCharset();

Files.lines(path, charset)
    .filter(line -> line.length() != 142)
    .forEach(line -> {
        MyRecord record = new MyRecord();
        record.id = Long.parseLong(line.substring(0, 10).trim());
        record.name = line.substring(10, 50).trim();
        record.age = Integer.parseInt(line.substring(50, 53).trim());
        ...
        result.add(record);
    });

String.trim()删除之前(“Mary”)和之后(“89”)的填充空格。 String.substring(position, nextPosition)选择固定的领域。

读取行没有换行符 - \r\n\n。检查线路长度(此处为142)。这是chars中的长度,但很可能也是字节长度,因为固定长度记录可能在单字节字符集中。


对于某些自定义类MyRecord镜像CSV行:

public class MyRecord {
    public long id;
    public String name;
    public int age;
    ...
}
© www.soinside.com 2019 - 2024. All rights reserved.