我试图在这里获取值:
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,它提供了额外的方便的流、读取器和实用程序。