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

How to get the value from the s3 input stream in java

我想在这里获取价值:

  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

我的预期输出是:req time 01-01-2000 03:10:10

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

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

另请查看 Apache Commons IO,它提供了更多方便的流、读取器和实用程序。