package com.constellio.data.utils;
import java.io.BufferedInputStream;
import java.io.DataOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
public class BigFileWriter {
String encoding;
DataOutputStream outputStream;
byte[] buffer = new byte[4096];
public BigFileWriter(OutputStream outputStream, String encoding) {
this.outputStream = new DataOutputStream(outputStream);
this.encoding = encoding;
}
public BigFileWriter(OutputStream outputStream) {
this(outputStream, "UTF-8");
}
public void write(File file)
throws IOException {
byte[] fileNameBytes = file.getName().getBytes();
outputStream.writeInt(fileNameBytes.length);
outputStream.write(fileNameBytes);
outputStream.writeInt((int) file.length());
InputStream in = new BufferedInputStream(new FileInputStream(file));
try {
copyStream(in);
} finally {
in.close();
}
}
public void copyStream(InputStream input)
throws IOException {
int n = 0;
while (-1 != (n = input.read(buffer))) {
outputStream.write(buffer, 0, n);
}
}
public static void main(String argv[])
throws Exception {
FileOutputStream fos = new FileOutputStream(new File("/Users/francisbaril/Downloads/file2.bigf"));
BigFileWriter writer = new BigFileWriter(fos);
writer.write(new File(
"/Users/francisbaril/IdeaProjects/constellio-dev/constellio/sdk/sdk-resources/com/constellio/model/services/contents/ContentManagementAcceptTest-pdf1.pdf"));
writer.write(new File(
"/Users/francisbaril/IdeaProjects/constellio-dev/constellio/sdk/sdk-resources/com/constellio/model/services/contents/ContentManagementAcceptTest-pdf2.pdf"));
writer.write(new File(
"/Users/francisbaril/IdeaProjects/constellio-dev/constellio/sdk/sdk-resources/com/constellio/model/services/contents/ContentManagementAcceptTest-pdf3.pdf"));
fos.close();
}
}