【问题标题】:Reading a text file using spring batch where records are of different length i.e not in fixed length使用弹簧批处理读取文本文件,其中记录的长度不同,即不是固定长度
【发布时间】:2021-05-16 13:12:34
【问题描述】:

我有一个包含如下记录的文本文件

name(1-3),age(4-5),ownCar(6)(如果有放 Y 否则留空)

数据样本:

Dom32Y

Pat22

Sam23

Rob45Y

所以在这里,如果您看到每条记录的大小不是固定长度..那么我如何使用 Spring Batch 读取这个文本文件。 现在我正在使用 FixedLengthTokenizer 读取此文件,但我收到错误“由:org.springframework.batch.item.file.transform.IncorrectLineLengthException”引起的

我是 Spring Batch 和 Java Config 的新手。如果有人可以帮助我为我的问题写一个解决方案,我真的很感激!

【问题讨论】:

标签: java spring parsing spring-batch flatfilereader


【解决方案1】:

默认情况下,FixedLengthTokenizerstrict 模式下工作,这意味着它不会容忍比预期更多或更少令牌的行。您可以通过设置the strict flag to false 来放松这一点,其行为如下:

If false then lines with less tokens will be tolerated and padded with empty columns,
and lines with more tokens will simply be truncated.

如果这不是您想要的,您可以覆盖 FixedLengthTokenizer#doTokenize 并提供您的自定义逻辑。

【讨论】:

  • 感谢您的建议..我将 strict 标志设置为 false 并开始工作
  • 很高兴它有帮助。在这种情况下,请接受答案,请参阅stackoverflow.com/help/someone-answers。谢谢。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-04-20
  • 2011-03-13
  • 2021-09-19
  • 2023-04-05
  • 2020-03-29
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多