需求:
从键盘接收两个文件夹路径,把其中一个文件夹中(包含内容)拷贝到另一个文件夹中
------------------------------------------------------------------------------------------
擦,需求就这一行,折腾了我一天
。。。。- package com.heima.test;
- 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.util.Scanner;
- public class Test8 {
- /**
- * 3,从键盘接收两个文件夹路径,把其中一个文件夹中(包含内容)拷贝到另一个文件夹中
- *
- * 分析:
- * 1.针对键盘录入的路径进行判断,正确的话,返回
- * 2.读取输入的路径文件,
- * 3,将读取的文件写出另一个路径下
- * @throws IOException
- */
- public static void main(String[] args) throws IOException {
-
- File f1 = null;
- File f2 = null;
- f1 = getFile();
- f2 = getFile2();
- File[] files = f1.listFiles();
- method(files,f2);
- System.out.println("复制好了");
-
- }
-
- //获取正确的键盘录入的文件夹路径
- public static File getFile(){
- System.out.println("请键盘输入一个文件夹路径");
- while(true){
- Scanner sc = new Scanner(System.in);
- String s = sc.nextLine();
- File f = new File(s);
- if((!f.exists()) || f.isFile()){
- System.out.println("输入错误,这不是文件夹路径唉```");
- }else if(f.isDirectory()){
- return f;
- }
- }
- }
-
- //获取正确的输出copy路径
- public static File getFile2(){
- System.out.println("请键盘输入一个要存入的文件夹路径");
-
- Scanner sc = new Scanner(System.in);
- String s = sc.nextLine();
- File f = new File(s);
- if(!f.exists()){
- f.mkdir();
- }
- return f;
-
-
- }
-
- //对录入的文件夹路径进行操作
- public static void method(File[] files,File f2) throws IOException{
- //创建字节输入流.输出流
-
- for (int i = 0; i < files.length; i++) {
-
- if(files[i].isFile()){
- BufferedInputStream bis = new BufferedInputStream(new FileInputStream(files[i]));
- BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream(f2.getPath()
- + File.separator + files[i].getName()));
- int b;
- while((b = bis.read())!=-1){
- bos.write(b);
- }
- bos.close();
- bis.close();
- }
- if(files[i].isDirectory()){
- File f3 = new File(f2.getPath()+File.separator+files[i].getName());
- f3.mkdir();
- method(files[i].listFiles(),f3);
- }
-
- }
- }
-
-
- }
复制代码 |