Java examples for File Path IO:File Copy
Copy the contents of the given input File into a new byte array.
import java.io.BufferedInputStream; import java.io.BufferedOutputStream; import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.FileReader; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import java.io.Reader; import java.io.StringWriter; import java.io.Writer; public class Main{ public static final int BUFFER_SIZE = 4096; /**/*from w ww. jav a2s . co m*/ * Copy the contents of the given input File into a new byte array. * * @param in * the file to copy from * @return the new byte array that has been copied to * @throws IOException * in case of I/O errors */ public static byte[] copyToByteArray(final File in) throws IOException { Assert.notNull(in, "No input File specified"); return copyToByteArray(new BufferedInputStream(new FileInputStream( in))); } /** * Copy the contents of the given InputStream into a new byte array. Closes * the stream when done. * * @param in * the stream to copy from * @return the new byte array that has been copied to * @throws IOException * in case of I/O errors */ public static byte[] copyToByteArray(final InputStream in) throws IOException { final ByteArrayOutputStream out = new ByteArrayOutputStream( BUFFER_SIZE); copy(in, out); return out.toByteArray(); } /** * Copy the contents of the given input File to the given output File. * * @param in * the file to copy from * @param out * the file to copy to * @return the number of bytes copied * @throws IOException * in case of I/O errors */ public static int copy(final File in, final File out) throws IOException { Assert.notNull(in, "No input File specified"); Assert.notNull(out, "No output File specified"); return copy(new BufferedInputStream(new FileInputStream(in)), new BufferedOutputStream(new FileOutputStream(out))); } /** * Copy the contents of the given byte array to the given output File. * * @param bytes * the byte array to copy from * @param file * the file to copy to * @throws IOException * in case of I/O errors */ public static void copy(final byte[] bytes, final File file) throws IOException { Assert.notNull(bytes, "No input byte array specified"); Assert.notNull(file, "No output File specified"); final ByteArrayInputStream in = new ByteArrayInputStream(bytes); final OutputStream out = new BufferedOutputStream( new FileOutputStream(file)); copy(in, out); } /** * Copy the contents of the given InputStream to the given OutputStream. * Closes both streams when done. * * @param in * the stream to copy from * @param out * the stream to copy to * @return the number of bytes copied * @throws IOException * in case of I/O errors */ public static int copy(InputStream in, OutputStream out) throws IOException { Assert.notNull(in, "No InputStream specified"); Assert.notNull(out, "No OutputStream specified"); if (!(in instanceof BufferedInputStream)) { in = new BufferedInputStream(in); } if (!(out instanceof BufferedOutputStream)) { out = new BufferedOutputStream(out); } try { int byteCount = 0; final byte[] buffer = new byte[BUFFER_SIZE]; int bytesRead = -1; while ((bytesRead = in.read(buffer)) != -1) { out.write(buffer, 0, bytesRead); byteCount += bytesRead; } out.flush(); return byteCount; } finally { IOUtils.closeQuietly(in, out); } } /** * Copy the contents of the given byte array to the given OutputStream. * Closes the stream when done. * * @param bytes * the byte array to copy from * @param out * the OutputStream to copy to * @throws IOException * in case of I/O errors */ public static void copy(final byte[] bytes, final OutputStream out) throws IOException { Assert.notNull(bytes, "No input byte array specified"); Assert.notNull(out, "No OutputStream specified"); try { out.write(bytes); } finally { IOUtils.closeQuietly(out); } } /** * Copy the contents of the given Reader to the given Writer. Closes both * when done. * * @param in * the Reader to copy from * @param out * the Writer to copy to * @return the number of characters copied * @throws IOException * in case of I/O errors */ public static int copy(Reader in, Writer out) throws IOException { Assert.notNull(in, "No Reader specified"); Assert.notNull(out, "No Writer specified"); if (!(in instanceof BufferedReader)) { in = new BufferedReader(in); } if (!(out instanceof BufferedWriter)) { out = new BufferedWriter(out); } try { int byteCount = 0; final char[] buffer = new char[BUFFER_SIZE]; int bytesRead = -1; while ((bytesRead = in.read(buffer)) != -1) { out.write(buffer, 0, bytesRead); byteCount += bytesRead; } out.flush(); return byteCount; } finally { IOUtils.closeQuietly(in, out); } } /** * Copy the contents of the given String to the given output Writer. Closes * the writer when done. * * @param in * the String to copy from * @param out * the Writer to copy to * @throws IOException * in case of I/O errors */ public static void copy(final String in, Writer out) throws IOException { Assert.notNull(in, "No input String specified"); Assert.notNull(out, "No Writer specified"); if (!(out instanceof BufferedWriter)) { out = new BufferedWriter(out); } try { out.write(in); } finally { IOUtils.closeQuietly(out); } } }