public class Demo3 { public static void main(String[] args) { File inputfile = new File("D:\新建文件夹 (2)\1.jpg"); File outputfile = new File("D:\新建文件夹\1.jpg"); FileInputStream fileInputStream = null; FileOutputStream fileOutputStream = null; try { fileInputStream = new FileInputStream(inputfile); fileOutputStream = new FileOutputStream(outputfile); byte[] buf = new byte[1024]; int length = 0; while((length = fileInputStream.read(buf))!=-1) { //这里我们用了三个参数的write方法,因为我们不知道最后一次读取的数据是不是有1024个字节, //为了防止图片拷贝后文件会变得大,我们在这里用了一个截取长度, //其实write(byte[] b)方法底层还是靠这个方法实现的,只不过截取长度是字节数组的长度而已 fileOutputStream.write(buf, 0,length ); } } catch (IOException e) { throw new RuntimeException(e); }finally { //边读边写规则:先开后关 if (fileOutputStream != null) { try { fileOutputStream.close(); } catch (IOException e) { throw new RuntimeException(e); }finally { try { fileInputStream.close(); } catch (IOException e) { throw new RuntimeException(e); } } } } } }