mongodbからファイルをダウンロードしようとしています。アップロードされるファイルのサイズは2106
バイト、chunkSize=2048
バイトなので、GridFSはファイルを2つのチャンクに分割します。 downloadStream.read(bytesToWriteTo)
のコードを実行すると、最初のチャンクのデータのみを読み込み、2番目のチャンクのデータは読み込めません。どのようにしてすべてのデータを読むことができますか?GridFSDownloadStreamがすべてのデータを読み取ることができません
public class OpenDownloadStreamDemo {
public static void main(String[] args) {
MongoClient mongoClient = new MongoClient("127.0.0.1", 27017);
MongoDatabase mongoDatabase = mongoClient.getDatabase("demo");
GridFSBucket gridFSBucket = GridFSBuckets[enter image description here][1].create(mongoDatabase);
ObjectId fileId = new ObjectId("56f25a8b163b4598987b666b");
GridFSDownloadStream downloadStream = gridFSBucket.openDownloadStream(fileId);
int fileLength = (int) downloadStream.getGridFSFile().getLength();
byte[] bytesToWriteTo = new byte[fileLength];
downloadStream.read(bytesToWriteTo);
downloadStream.close();
System.out.println(new String(bytesToWriteTo, StandardCharsets.UTF_8));
}
}