如何从java中的s3输入流中获取值



我试图在这里获取值:

public char getTs() throws IOException {
S3ObjectInputStream ts = null;
int i;
ts = (S3ObjectInputStream) s3Services.getResourceStream(fileURL.toString());
while ((i = ts.read()) != -1) {
c = (char) i;
LOGGER.info("req time {} ", c);
}
return c;
}

我得到的值是以位为单位的,如何一次得到整个值?使用数组合适吗?

My Output :req time 0
req time 1
req time -
req time 0
req time 1.... and so on

我的预期输出是:请求时间01-01-2000 03:10:10

您可以将S3ObjectInputStream封装在InputStreamReader中,将InputStreamReader封装在BufferedInputStream中。这样你就可以逐行读取对象:

var reader = new BufferedReader(new InputStreamReader(ts));
var line = reader.readLine();

还可以查看Apache Commons IO,它提供了额外的方便的流、读取器和实用程序。

最新更新