csvファイルを読み込む
blob.getContentでファイルの中身が取得できるが、ファイルサイズが大きい場合は困ってしまう
Bucket bucket = getBucket(bucketName);
Storage.BlobListOption option = Storage.BlobListOption.prefix(directory);
Page<Blob> blobs = bucket.list(option);
Iterator<Blob> iterator = blobs.iterateAll().iterator();
List<String> csvList = new ArrayList<>();
while (iterator.hasNext()) {
Blob blob = iterator.next();
byte[] content = blob.getContent(Blob.BlobSourceOption.generationMatch());
csvList.add(new String(content));
}
for (String csv : csvList) {
// process...
}
csvファイルを1行ずつ読み込む
getContentの代わりに、以下のようにすれば1行ずつ読みこんで処理できる
ReadChannel readChannel = blob.reader();
BufferedReader br = new BufferedReader(Channels.newReader(readChannel, "UTF-8"));
String line;
while((line = br.readLine()) != null){
// process...
}