我可以使用SpringBatch传输http的文件(video.txt)并在我的电脑上读写吗



现在我正在尝试编写一个http文件(示例:"https://www.w3.org/TR/PNG/iso_8859-1.txt"(使用springBatch连接到我的本地电脑。但无法读取文件。我的阅读器文件如下:

public FlatFileItemReader<String> reader(){
FlatFileItemReader<String> reader = new FlatFileItemReader<String>();
reader.setResource(new UrlResource("https://www.w3.org/TR/PNG/iso_8859-1.txt"));
reader.setRecordSeparatorPolicy(new RecordSeparatorPolicy() {
@Override
public boolean isEndOfRecord(String s) {
if (s.length() == 100)
return true;
return false;
}
@Override
public String postProcess(String s) {
return s;
}
@Override
public String preProcess(String s) {
return s;
}
});
return reader;
}

我正在从输入中读取100个长度的块,并将其传递给作者。但我得到了这个错误:

org.springframework.batch.item.file.FlatFileParseException: Unexpected end of file before record complete
at org.springframework.batch.item.file.FlatFileItemReader.applyRecordSeparatorPolicy(FlatFileItemReader.java:303) ~[spring-batch-infrastructure-4.2.4.RELEASE.jar:4.2.4.RELEASE]
at org.springframework.batch.item.file.FlatFileItemReader.readLine(FlatFileItemReader.java:220) ~[spring-batch-infrastructure-4.2.4.RELEASE.jar:4.2.4.RELEASE]
at org.springframework.batch.item.file.FlatFileItemReader.doRead(FlatFileItemReader.java:178) ~[spring-batch-infrastructure-4.2.4.RELEASE.jar:4.2.4.RELEASE]
...

如何从http中读取完整的.txt文件并进行处理并将其写入所需位置?

如果不是txt文件,而是将视频文件传递给读取器(在这种情况下,什么应该是FlatFileItemReader<???>类型?

您不需要自定义记录分隔符策略,可以使用PassThroughLineMapper

如果不是txt文件,我会把视频文件传递给阅读器(在这种情况下应该是什么类型的FlatFileItemReader?

您可以使用byte[]作为项类型,也可以使用SimpleBinaryBufferedReaderFactory。

最新更新