0
テキストファイルを既存のzipファイルに挿入するにはどうすればよいですか。両方のファイルのストリームがあります。javaの既存のzipファイルにテキストファイルを追加するには?
サンプルコード以下の通りです:
私はIOutils.copy(in, out)
を使用していますが、それはコンテンツを置き換えています。ファイルを挿入して既存のコンテンツを保持する必要があります。
public URI createACopyOfFile(String requestId) throws Exception {
BlobOutputStream blobOutputStream = null;
BlobInputStream blobInputStream = null;
try {
long startTime = System.currentTimeMillis();
System.out.print("Start createACopyOfFile ->" + startTime);
long endTime = 0;
CloudStorageAccount storageAccount = CloudStorageAccount.parse(storageConnectionString);
CloudBlobClient cloudBlobClient = storageAccount.createCloudBlobClient();
CloudBlobContainer container = cloudBlobClient.getContainerReference("tme-container");
container.createIfNotExists();
String blobName = "dummy.zip";
CloudBlockBlob sourceBlob = container.getBlockBlobReference(blobName);
CloudBlockBlob targetBlob = container.getBlockBlobReference(requestId + "/dummy_copy.zip");
targetBlob.startCopyFromBlob(sourceBlob);
blobOutputStream = targetBlob.openOutputStream();
CloudBlockBlob blob = container.getBlockBlobReference(requestId + "/" + "activation.txt");
blob.uploadText("Hello world");
blobInputStream = blob.openInputStream();
IOUtils.copy(blobInputStream, blobOutputStream);
endTime = System.currentTimeMillis();
System.out.print("End createACopyOfFile -> " + endTime);
System.out.println("Total time taken for createACopyOfFile - > " + (endTime - startTime)/1000);
return targetBlob.getUri();
} finally {
try {
if (blobInputStream != null)
blobInputStream.close();
} catch (IOException e) {
e.printStackTrace();
}
try {
if (blobOutputStream != null)
blobOutputStream.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
より具体的に質問を編集してください。これはJava固有の問題ですか?または、Azureに関連するものがありますか(そして、Azureにはいったら、どうですか?質問は不明です)。 –
はい、それはJavaにのみ関連していますが、ファイルは空白のプラットフォームに格納されています。 大きなファイルを格納するためにBLOBストレージを使用しています。実行時には、そこにある大きなファイルにファイルを挿入する必要があります。 –
サンプルコードが添付されています。 IOUtils.copy(blobInputStream、blobOutputStream)を実行したときに –