Java examples for File Path IO:File Copy
Attempts to copy the first 'amount' bytes of file 'src' to 'dst', returning the number of bytes actually copied.
//package com.java2s; import java.io.BufferedInputStream; import java.io.BufferedOutputStream; 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 Main { public static void main(String[] argv) throws Exception { File src = new File("Main.java"); File dst = new File("Main.java"); System.out.println(copy(src, dst)); }/* www.jav a2s . c om*/ /** * Attempts to copy the first 'amount' bytes of file 'src' to 'dst', * returning the number of bytes actually copied. If 'dst' already exists, * the copy may or may not succeed. * * @param src the source file to copy * @param amount the amount of src to copy, in bytes * @param dst the place to copy the file * @return the number of bytes actually copied. Returns 'amount' if the * entire requested range was copied. */ public static int copy(File src, int amount, File dst) { final int BUFFER_SIZE = 1024; int amountToRead = amount; InputStream in = null; OutputStream out = null; try { //I'm not sure whether buffering is needed here. It can't hurt. in = new BufferedInputStream(new FileInputStream(src)); out = new BufferedOutputStream(new FileOutputStream(dst)); byte[] buf = new byte[BUFFER_SIZE]; while (amountToRead > 0) { int read = in.read(buf, 0, Math.min(BUFFER_SIZE, amountToRead)); if (read == -1) break; amountToRead -= read; out.write(buf, 0, read); } } catch (IOException e) { } finally { if (in != null) try { in.close(); } catch (IOException e) { } if (out != null) { try { out.flush(); } catch (IOException e) { } try { out.close(); } catch (IOException e) { } } } return amount - amountToRead; } /** * Copies the file 'src' to 'dst', returning true iff the copy succeeded. * If 'dst' already exists, the copy may or may not succeed. May also * fail for VERY large source files. */ public static boolean copy(File src, File dst) { //Downcasting length can result in a sign change, causing //copy(File,int,File) to terminate immediately. long length = src.length(); return copy(src, (int) length, dst) == length; } }