在Java中,怎样将图片从一个地方复制到另一个地方?(最好有代码)

Python013

在Java中,怎样将图片从一个地方复制到另一个地方?(最好有代码),第1张

JDK宝典里有这样的一段代码,你调用copyFile方法就可以了:

/**

 * 复制单个文件, 如果目标文件存在,则不覆盖。

 * @param srcFileName 待复制的文件名

 * @param destFileName 目标文件名

 * @return  如果复制成功,则返回true,否则返回false

 */

public static boolean copyFile(String srcFileName, String destFileName){

 return CopyFileUtil.copyFile(srcFileName, destFileName, false)

}

/**

 * 复制单个文件

 * @param srcFileName 待复制的文件名

 * @param destFileName 目标文件名

 * @param overlay  如果目标文件存在,是否覆盖

 * @return 如果复制成功,则返回true,否则返回false

 */

public static boolean copyFile(String srcFileName,

  String destFileName, boolean overlay) {

 //判断原文件是否存在

 File srcFile = new File(srcFileName)

 if (!srcFile.exists()){

  System.out.println("复制文件失败:原文件" + srcFileName + "不存在!")

  return false

 } else if (!srcFile.isFile()){

  System.out.println("复制文件失败:" + srcFileName + "不是一个文件!")

  return false

 }

 //判断目标文件是否存在

 File destFile = new File(destFileName)

 if (destFile.exists()){

  //如果目标文件存在,而且复制时允许覆盖。

  if (overlay){

   //删除已存在的目标文件,无论目标文件是目录还是单个文件

   System.out.println("目标文件已存在,准备删除它!")

   if(!DeleteFileUtil.delete(destFileName)){

    System.out.println("复制文件失败:删除目标文件" + destFileName + "失败!")

    return false

   }

  } else {

   System.out.println("复制文件失败:目标文件" + destFileName + "已存在!")

   return false

  }

 } else {

  if (!destFile.getParentFile().exists()){

   //如果目标文件所在的目录不存在,则创建目录

   System.out.println("目标文件所在的目录不存在,准备创建它!")

   if(!destFile.getParentFile().mkdirs()){

    System.out.println("复制文件失败:创建目标文件所在的目录失败!" )

    return false

   }

  }

 }

 //准备复制文件

 int byteread = 0//读取的位数

 InputStream in = null

 OutputStream out = null

 try {

  //打开原文件

  in = new FileInputStream(srcFile) 

  //打开连接到目标文件的输出流

  out = new FileOutputStream(destFile)

  byte[] buffer = new byte[1024]

  //一次读取1024个字节,当byteread为-1时表示文件已经读完

  while ((byteread = in.read(buffer)) != -1) {

   //将读取的字节写入输出流

   out.write(buffer, 0, byteread)

  }

  System.out.println("复制单个文件" + srcFileName + "至" + destFileName + "成功!")

  return true

 } catch (Exception e) {

  System.out.println("复制文件失败:" + e.getMessage())

  return false

 } finally {

  //关闭输入输出流,注意先关闭输出流,再关闭输入流

  if (out != null){

   try {

    out.close()

   } catch (IOException e) {

    e.printStackTrace()

   }

  }

  if (in != null){

   try {

    in.close()

   } catch (IOException e) {

    e.printStackTrace()

   }

  }

 }

}

可以通过带缓冲的字节输入输出流来完成。下面我写的一个小例子

import java.io.*

public class FileTest {

public static void main(String[] args) throws FileNotFoundException {

int i

String file="e:/电影/123/2012.rmvb"//要复制的文件路径和名称

BufferedInputStream bis = new BufferedInputStream(new FileInputStream(file))//创建一个带缓冲字节输入流读取文件

String fileName="2012.rmvb"//文件名

BufferedOutputStream bos=new BufferedOutputStream(new FileOutputStream("c:/my/"+fileName))//复制目的的路径

try {

while ((i = bis.read()) != -1) {

bos.write(i)

}

} catch (IOException ex) {

ex.printStackTrace()

}finally{

try {

bis.close()

bos.close()

} catch (IOException ex) {

ex.printStackTrace()

}

}

}

}

运行正确,求采纳