package io;

 import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.util.Scanner; public class copy { public static void main(String[] args) { Scanner sc = new Scanner(System.in);// 键盘输入 System.out.print("请输入需要复制的源:");
String srcPath = sc.next();
System.out.print("请输入需要复制的目的:");
String destPath = sc.next(); System.out.println("复制开始");
copys(srcPath, destPath);
System.out.println("复制结束"); } /**
* 复制
*
* @param srcPath
* 源
* @param destPath
* 目的
*/
private static void copys(String srcPath, String destPath) { File srcFile = new File(srcPath); if (srcFile.isDirectory()) {// 判断是否为文件夹 File[] files = srcFile.listFiles();// 获取文件列表,File对象 for (File file : files) { String name = File.separator + file.getName();// 获取适合计算机系统的地址分隔符;获取文件名或文件夹名 if (file.isDirectory()) {// 判断是否为文件夹
copyDirectory(srcPath + name, destPath + name);
} if (file.isFile()) {// 判断是否为文件
copyFile(file, srcPath + name, destPath + name);
} } } if (srcFile.isFile()) {// 判断是否为文件
copyFile(srcFile, srcPath, destPath);
} } /**
* 复制文件夹
*
* @param srcPath
* 源
* @param destPath
* 目的
*/
private static void copyDirectory(String srcPath, String destPath) { File destFile = new File(destPath); if (!destFile.exists()) {// 判断文件或文件夹是否存在
destFile.mkdirs();// 创建目录(包括父目录)
} copys(srcPath, destPath); } /**
* 复制文件
*
* @param file
* File对象
* @param srcPath
* 源
* @param destPath
* 目的
*/
private static void copyFile(File file, String srcPath, String destPath) { InputStream is = null;
OutputStream os = null; File srcFile = new File(srcPath);
File destFile = new File(destPath); try { is = new FileInputStream(srcFile);
os = new FileOutputStream(destFile); int length = (int) file.length();// 获取文件的字节长度
byte[] b = new byte[length]; is.read(b);
os.write(b); } catch (IOException e) { System.out.println("IO异常, 复制失败");
e.printStackTrace(); } finally { try { os.close();
is.close(); } catch (IOException e) { System.out.println("IO异常, 复制失败");
e.printStackTrace(); } } } }

IO流 复制文件及文件夹的更多相关文章

  1. IO流的应用_Copy文件

    IO流的应用_Copy文件 (1) import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundEx ...

  2. io流(io流的引入与文件字节流)

    io流的引入与文件字节流 io流:就是一根吸管,插入后,可以操作目标文件 io流的分类: 按方向:输入,输出 按大小:字节,字符 按处理方式: 处理流:"管套着管" --- 流结合 ...

  3. IO流-复制多极文件夹(递归实现)

    package com.io.test; import java.io.BufferedInputStream; import java.io.BufferedOutputStream; import ...

  4. java用字符io流复制文件

    一.小文件一次快速读写 import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundExceptio ...

  5. IO流——File类(文件流类)

    java语言的输入输出操作是借助于输入输出包java.io来实现的,按传输方向分为输入流与输出流,从外设传递到应用程序的流为输入流,将数据从应用程序输入到外设的流为输出流. File类的构造方法: 1 ...

  6. IO流实现简单的文件的剪切

    思路: 判断 即将 复制的文件是文件夹还是文件 遍历需要复制的源文件夹 如果是文件夹,就通过流创建一个同样的子文件夹 如果是文件,就复制过去 接下来上代码 public class Demo1 { p ...

  7. 07 IO流(四)——文件字节流 FileInputStream/FileOutputStream与文件的拷贝

    两个类的简述 专门用来对文件进行读写的类. 父类是InputStream.OutputStream 文件读入细节 FileOutputStream流的构造方法:new FileOutputStream ...

  8. IO流实现GBK写入文件然后转换UTF-8

    public static void main(String[] args) throws IOException { File file = new File("olol\\a.txt&q ...

  9. java IO流复制图片

    一.使用字节流复制图片 //字节流方法 public static void copyFile()throws IOException { //1.获取目标路径 //(1)可以通过字符串 // Str ...

随机推荐

  1. win7下mysql5.5与mysql5.6同时安装

    5.5己正常的情况下,用官方下载的安装包总是不成功,用的官方解压版5.6.44 1.复制my-default.ini到my.ini,只需要改端口就行了,设置base-dir/data-dir反而无法启 ...

  2. (1)python tkinter-窗体

    1.导入自带的包名 import tkinter 2.创建一个窗体对象 form=Tkinter.Tk() 3.显示窗体(这句应该是所有的设置部署完最后执行的一句代码) form.mainloop() ...

  3. low版九九乘法表

    # while循环实现九九乘法表num_one = 1while num_one <= 9: num_two = 1 while num_two <= num_one: print(&qu ...

  4. Largest Rectangle in a Histogram /// 单调栈 oj23906

    题目大意: 输入n,,1 ≤ n ≤ 100000,接下来n个数为每列的高度h ,0 ≤ hi ≤ 1000000000 求得最大矩阵的面积 Sample Input 7 2 1 4 5 1 3 34 ...

  5. POJ - 3294~Relevant Phrases of Annihilation SPOJ - PHRASES~Substrings POJ - 1226~POJ - 3450 ~ POJ - 3080 (后缀数组求解多个串的公共字串问题)

    多个字符串的相关问题 这类问题的一个常用做法是,先将所有的字符串连接起来, 然后求后缀数组 和 height 数组,再利用 height 数组进行求解. 这中间可能需要二分答案. POJ - 3294 ...

  6. MySQL5.1的安装过程

    开始配置文件

  7. SHELL递归遍历文件夹下所有文件

    #!/bin/bash read_dir(){ ` do "/"$file ] then if [[ $file != '.' && $file != '..' ] ...

  8. mac os Catalina beta Jetbrains idea闪退解决方案

    第一时间升级最新版本的Catalina 10.15 Beta 版(19A501i) 后, 发现不管在idea 输入什么,都会直接crash. 不论是卸载重装还是,clean,结果都是一样的. 在网上查 ...

  9. nodejs入门最简单例子

    一.mac话,先安装nodejs环境: brew install nodejs 二.先写一个main.js var http = require("http"); http.cre ...

  10. webpack英文文档

    https://github.com/webpack/docs/wiki/contents