UGA Boxxx

つぶやきの延長のつもりで、知ったこと思ったこと書いてます

【Java】GCSからjsonファイルを取得してstreamにする

JavaでGCSにあるファイルを取得してStreamにしたい

公式ドキュメントだとファイルを特定のフォルダにダウンロードする方法が紹介されている

cloud.google.com

これをファイルダウンロードせずにStreamにする方法を調べた

com.google.cloud.storage.Blobクラスのreader()メソッドでReadableByteChannelを継承したインスタンスが生成されるのでChannels.newInputStreamInputStreamをつくればいつも通りの方法で作成できる

Blob blob = storage.get(BlobId.of(bucketName, fileName));
BufferedReader bufferedReader =
        new BufferedReader(
            new InputStreamReader(Channels.newInputStream(blob.reader()), StandardCharsets.UTF_8));

Stream<String> lines = bufferedReader.lines();

ファイル一行ずつのStreamをつくることができた