java 简单的拷贝文件夹

Posted zerobased

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java 简单的拷贝文件夹相关的知识,希望对你有一定的参考价值。

import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;

class Wenjian implements Runnable{
	static String str="C:\\Users\\cdlx2016\\Desktop\\实验";
	static String str10="C:\\Users\\cdlx2016\\Desktop\\实验2";

	static int a=0;
	 //static File file = new File(str);
      @Override
    public void run() {
          synchronized ("222") {
        	  
        	  paly(str10);
          }
    }
      public void paly(String str11){
    
    	  File file1 = new File(str11);
    	  File file = new File(str);
    	  //创建新的文件夹
    	  file1.mkdirs();
			File[] files = file.listFiles();
			for (int i = 0;i<files.length;i++) {
				//System.out.println(files[i].getName());
				if(files[i].isFile()){
					//拼接新的文件地址
					String s = str11+"\\"+files[i].getName();
					//原来的文件地址
					String s1 = files[i].getPath();
						ShuRu(s1,s);
				}
				if (files[i].isDirectory()) {
					
					str=files[i].getPath();
					//拼接新的文件夹地址
					str10=str11+"\\"+files[i].getName();
					
					paly(str10);
			}
	   }
    	  
      }
      public static void ShuRu(String str4,String s) {
    		File file =new File(str4);
    			
    			FileInputStream iputFileInputStream=null;
    			try {
    				iputFileInputStream = new FileInputStream(file);
    				byte[] b = new byte[1024];
    				int cuont=0;
    				try {
    					while ((cuont=iputFileInputStream.read(b))!=-1) {
    						System.out.println(new String(b, 0, cuont));
    						ShuChu(b,s);	
    					}
    				} catch (IOException e) {
    					 System.out.println("你的硬盘有问题");
    					 throw new RuntimeException(e);
    				}
    			} catch (FileNotFoundException e) {
    				 System.out.println("你写入的文件有误");
    			       throw new RuntimeException(e);
    			}finally{
    				
    				try {
    					iputFileInputStream.close();
    				} catch (IOException e) {
    					 System.out.println("无法关闭");
    					 throw new RuntimeException(e);
    				}
    				
    			}
    			
    		} 
      public static void ShuChu(byte[] bb ,String s){
  		//C:\Users\cdlx2016\Desktop
    	  a++;
  		File file =new File(s);
  		FileOutputStream outputStream = null;
  		try {
  			outputStream = new FileOutputStream(file,true);
  			byte [] b = bb;
  			try {
  				outputStream.write(b);
  			} catch (IOException e) {
  				 System.out.println("你的硬盘有问题");
  				 throw new RuntimeException(e);
  			}
  		} catch (FileNotFoundException e) {
  		       System.out.println("你写出的文件有误");
  		       throw new RuntimeException(e);
  		}finally{
  			try {
  				outputStream.close();
  			} catch (IOException e) {
  				 System.out.println("无法关闭");
  				 throw new RuntimeException(e);
  				 
  			}
  		}
  		
  		
  	}
}



public class Work1 {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
    
//(七)输入两个文件夹名称,将A文件夹内容全部拷贝到B文件夹,要求使用多线程来操作。 必做
		Wenjian ww=new Wenjian();
		  Thread t = new Thread(ww,"下载一");
		  Thread t1 = new Thread(ww,"下载一");
		  t.start();
		  t1.start();
		 
		  
		
	}

}

 

 

以上是关于java 简单的拷贝文件夹的主要内容,如果未能解决你的问题,请参考以下文章

用java写一个简单的文件拷贝程序吧

java 简单的代码片段,展示如何将javaagent附加到运行JVM进程

java 简单的拷贝文件夹

java代码在片段活动中不起作用

Gradle 引入本地定制 jar 包

Java 深拷贝与浅拷贝概念与代码实现