package com.levelup.java.io;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.net.URISyntaxException;
import java.nio.file.Path;
import java.nio.file.Paths;
import org.apache.commons.io.FileUtils;
import org.junit.Before;
import org.junit.Test;
import com.google.common.io.Files;
/**
* This java example will demonstrate writing
* a byte array to a file using java, google guava, apache commons.
*
* @author Justin Musgrove
* @see <a href='http://www.leveluplunch.com/java/examples/write-byte-array-to-file/'>Write byte array to file</a>
*
*/
public class ByteArrayToFile {
private byte[] fileAsByteArray = {
70, 105, 108, 101, 32,
116, 111, 32, 98, 121,
116, 101, 32, 97, 114,
114, 97, 121};
private static final String OUTPUT_FILE_NAME = "output/ByteArrayToFile.txt";
@Before
public void setUp () throws IOException {
// create new empty file
File file = new File(OUTPUT_FILE_NAME);
Files.createParentDirs(file);
file.createNewFile();
}
@Test
public void convert_byte_array_to_file_java () throws IOException {
FileOutputStream fos = new FileOutputStream(OUTPUT_FILE_NAME);
fos.write(fileAsByteArray);
fos.close();
}
@Test
public void convert_byte_array_to_file_java_nio () throws URISyntaxException, IOException {
Path path = Paths.get(OUTPUT_FILE_NAME);
java.nio.file.Files.write(path, fileAsByteArray);
}
@Test
public void convert_byte_array_to_file_guava () throws IOException {
File fileToWriteTo = new File(OUTPUT_FILE_NAME);
Files.write(fileAsByteArray, fileToWriteTo);
}
@Test
public void convert_byte_array_to_file_apache_ioutils () throws IOException {
File fileToWriteTo = new File(OUTPUT_FILE_NAME);
FileUtils.writeByteArrayToFile(fileToWriteTo, fileAsByteArray);
}
}