我可以使用 SpringBatch 传输 http 文件 (video/txt) 并在我的电脑上读取和写入它吗?
Can I use SpringBatch to transfer file(video/txt) present of http and read it and write it on my pc?
现在我正在尝试使用 springBatch 将一个 http 文件(样本:“https://www.w3.org/TR/PNG/iso_8859-1.txt”)写入我的本地电脑。但是无法读取文件。
我的Reader文件如下:
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 文件,我会将 视频文件 传递给 reader(应该是 FlatFileItemReader< ???> 在这种情况下键入?
您不需要自定义记录分隔符策略,您可以使用 PassThroughLineMapper
代替。
Also what if instead of txt file, I will pass video file to reader(What should be FlatFileItemReader type in this case?
您可以使用 byte[]
作为项目类型或使用 SimpleBinaryBufferedReaderFactory。
现在我正在尝试使用 springBatch 将一个 http 文件(样本:“https://www.w3.org/TR/PNG/iso_8859-1.txt”)写入我的本地电脑。但是无法读取文件。 我的Reader文件如下:
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 文件,我会将 视频文件 传递给 reader(应该是 FlatFileItemReader< ???> 在这种情况下键入?
您不需要自定义记录分隔符策略,您可以使用 PassThroughLineMapper
代替。
Also what if instead of txt file, I will pass video file to reader(What should be FlatFileItemReader type in this case?
您可以使用 byte[]
作为项目类型或使用 SimpleBinaryBufferedReaderFactory。