Ich versuche, Datei von Mongodb herunterzuladen. Die Größe der hochgeladenen Datei ist 2106
Bytes und chunkSize=2048
Bytes, so teilt GridFS die Datei in 2 Chunks. Wenn ich die Codes von downloadStream.read(bytesToWriteTo)
ausführe, lese nur Daten des ersten Chunks und kann die Daten des zweiten Chunks nicht lesen. Wie kann ich alle Daten lesen?GridFSDownloadStream kann nicht alle Daten lesen
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));
}
}