加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

Java_文件夹拷贝

发布时间:2020-12-14 06:26:29 所属栏目:Java 来源:网络整理
导读:一.思路 * 文件夹的拷贝 1.递归查找子孙级文件 2.文件复制 文件夹创建 二.代码 span style="color: #0000ff"import span style="color: #000000" java.io.File; span style="color: #0000ff"import span style="color: #000000" java.io.FileInputStream; sp

一.思路 

  * 文件夹的拷贝  1.递归查找子孙级文件  2.文件复制   文件夹创建

二.代码  

<span style="color: #0000ff">import<span style="color: #000000"> java.io.File;
<span style="color: #0000ff">import<span style="color: #000000"> java.io.FileInputStream;
<span style="color: #0000ff">import<span style="color: #000000"> java.io.FileNotFoundException;
<span style="color: #0000ff">import<span style="color: #000000"> java.io.FileOutputStream;
<span style="color: #0000ff">import<span style="color: #000000"> java.io.IOException;
<span style="color: #0000ff">import<span style="color: #000000"> java.io.InputStream;
<span style="color: #0000ff">import<span style="color: #000000"> java.io.OutputStream;

<span style="color: #008000">/*<span style="color: #008000">

  • 文件夹的拷贝
    1.递归查找子孙级文件
    2.文件复制
    文件夹创建

  • <span style="color: #808080">@author<span style="color: #008000"> Administrator

  • <span style="color: #008000">*/
    <span style="color: #0000ff">public <span style="color: #0000ff">class<span style="color: #000000"> CopyDirDemo {
    <span style="color: #0000ff">public <span style="color: #0000ff">static <span style="color: #0000ff">void<span style="color: #000000"> main(String[] args) {
    <span style="color: #008000">//<span style="color: #008000">源文件夹
    File src = <span style="color: #0000ff">new File("D:web13src"<span style="color: #000000">);
    <span style="color: #008000">//<span style="color: #008000">目标文件夹
    File dest = <span style="color: #0000ff">new File("D:"<span style="color: #000000">);

     </span><span style="color: #0000ff"&gt;try</span><span style="color: #000000"&gt; {
         copyDir(src,dest);
     } </span><span style="color: #0000ff"&gt;catch</span><span style="color: #000000"&gt; (IOException e) {
         </span><span style="color: #008000"&gt;//</span><span style="color: #008000"&gt; TODO Auto-generated catch block</span>

    <span style="color: #000000"> e.printStackTrace();
    }
    }
    <span style="color: #008000">/*<span style="color: #008000">

    • <span style="color: #808080">@param<span style="color: #008000"> src
    • <span style="color: #808080">@param<span style="color: #008000"> dest
    • <span style="color: #808080">@throws<span style="color: #008000"> IOException
      <span style="color: #008000">*/
      <span style="color: #0000ff">public <span style="color: #0000ff">static <span style="color: #0000ff">void copyDir(File src,File dest) <span style="color: #0000ff">throws<span style="color: #000000"> IOException {
      <span style="color: #008000">//<span style="color: #008000"> TODO Auto-generated method stub
      <span style="color: #008000">//<span style="color: #008000">判断源文件夹是否是一个文件夹
      <span style="color: #0000ff">if<span style="color: #000000">(src.isDirectory()){
      dest=<span style="color: #0000ff">new<span style="color: #000000"> File(dest,src.getName());
      <span style="color: #008000">//<span style="color: #008000">在目标文件夹中创建文件夹
      <span style="color: #000000"> dest.mkdirs();
      <span style="color: #008000">//<span style="color: #008000">获取原文件架中所有文件,文件并拷贝,文件夹创建
      <span style="color: #0000ff">for<span style="color: #000000">(File f:src.listFiles()){
      copyDir(f,<span style="color: #0000ff">new<span style="color: #000000"> File(dest,f.getName()));
      }
      }<span style="color: #0000ff">else <span style="color: #0000ff">if<span style="color: #000000">(src.isFile()){
      copyFile(src,dest);
      }

    }
    <span style="color: #008000">/*<span style="color: #008000">

    • 拷贝文件
    • <span style="color: #808080">@param<span style="color: #008000"> src
    • <span style="color: #808080">@param<span style="color: #008000"> dest
    • <span style="color: #808080">@throws<span style="color: #008000"> IOException
      <span style="color: #008000">*/
      <span style="color: #0000ff">public <span style="color: #0000ff">static <span style="color: #0000ff">void copyFile(File src,File dest) <span style="color: #0000ff">throws<span style="color: #000000"> IOException{
      <span style="color: #0000ff">if<span style="color: #000000">(dest.isDirectory()){
      <span style="color: #0000ff">try<span style="color: #000000"> {
      <span style="color: #0000ff">throw <span style="color: #0000ff">new Exception("目标是文件夹,不能拷贝"<span style="color: #000000">);
      } <span style="color: #0000ff">catch<span style="color: #000000"> (Exception e) {
      <span style="color: #008000">//<span style="color: #008000"> TODO Auto-generated catch block
      <span style="color: #000000"> e.printStackTrace();
      }
      }
      <span style="color: #0000ff">if<span style="color: #000000">(src.isFile()){
      <span style="color: #008000">//<span style="color: #008000">创建流
      InputStream is=<span style="color: #0000ff">new<span style="color: #000000"> FileInputStream(src);
      OutputStream os=<span style="color: #0000ff">new<span style="color: #000000"> FileOutputStream(dest);
      <span style="color: #008000">//<span style="color: #008000">拷贝
      <span style="color: #008000">//<span style="color: #008000">一次拷贝字节数
      <span style="color: #0000ff">byte []b=<span style="color: #0000ff">new <span style="color: #0000ff">byte[1024<span style="color: #000000">];
      <span style="color: #008000">//<span style="color: #008000">记录字节数
      <span style="color: #0000ff">int len=0<span style="color: #000000">;
      <span style="color: #0000ff">while(-1!=(len=<span style="color: #000000">is.read(b))){
      os.write(b,0<span style="color: #000000">,len);
      }
      <span style="color: #008000">//<span style="color: #008000">关闭流
      <span style="color: #000000"> os.close();
      is.close();
      }<span style="color: #0000ff">else<span style="color: #000000">{
      System.out.println("错误,不是文件"<span style="color: #000000">);
      }

    }
    }

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读