IO流 复制文件及文件夹
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流 复制文件及文件夹的更多相关文章
- IO流的应用_Copy文件
IO流的应用_Copy文件 (1) import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundEx ...
- io流(io流的引入与文件字节流)
io流的引入与文件字节流 io流:就是一根吸管,插入后,可以操作目标文件 io流的分类: 按方向:输入,输出 按大小:字节,字符 按处理方式: 处理流:"管套着管" --- 流结合 ...
- IO流-复制多极文件夹(递归实现)
package com.io.test; import java.io.BufferedInputStream; import java.io.BufferedOutputStream; import ...
- java用字符io流复制文件
一.小文件一次快速读写 import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundExceptio ...
- IO流——File类(文件流类)
java语言的输入输出操作是借助于输入输出包java.io来实现的,按传输方向分为输入流与输出流,从外设传递到应用程序的流为输入流,将数据从应用程序输入到外设的流为输出流. File类的构造方法: 1 ...
- IO流实现简单的文件的剪切
思路: 判断 即将 复制的文件是文件夹还是文件 遍历需要复制的源文件夹 如果是文件夹,就通过流创建一个同样的子文件夹 如果是文件,就复制过去 接下来上代码 public class Demo1 { p ...
- 07 IO流(四)——文件字节流 FileInputStream/FileOutputStream与文件的拷贝
两个类的简述 专门用来对文件进行读写的类. 父类是InputStream.OutputStream 文件读入细节 FileOutputStream流的构造方法:new FileOutputStream ...
- IO流实现GBK写入文件然后转换UTF-8
public static void main(String[] args) throws IOException { File file = new File("olol\\a.txt&q ...
- java IO流复制图片
一.使用字节流复制图片 //字节流方法 public static void copyFile()throws IOException { //1.获取目标路径 //(1)可以通过字符串 // Str ...
随机推荐
- System.Web.Mvc.IController.cs
ylbtech-System.Web.Mvc.IController.cs 1.程序集 System.Web.Mvc, Version=5.2.3.0, Culture=neutral, Public ...
- JAVA 设计的七大原则
一.开闭原则 开闭原则(Open-Closed Principle, OCP)是指一个软件实体如类.模块和函数应该对 扩展开放,对修改关闭. 所谓的开闭,也正是对扩展和修改两个行为的一个原则.强调 的 ...
- php array_unshift,array_push追加数组元素
追加元素在数组前面:<?php $a=array("a"=>"Cat","b"=>"Dog"); ar ...
- input 不显示输入的历史记录
第一次在 input 输入后,下次就会自动显示输入历史记录,去掉这种默认效果的解决方案 <input name="username" type="text" ...
- Ascii码 、16进制与 char
对于一个非计算机专业出身的人,以前只知道计算机中所有的数据都是以二进制形式进行存储,计算,通信的.但是人类文明中,主要的信息展现以文本的形式展现的.如果使用内存中的0和1来表示文本一直 ...
- 获取m,n之间的随机整数
获取m,n之间的随机整数 代码去下:
- SaltStack远程执行Windows job程序(黑窗口)填坑经过
近期接到领导通知,要将公司内的所有Windows服务添加到自动发布系统中,由于这种服务很多,节点分布散乱,每次都是由开发主管手动替换(虽然他们自己开发了自动打包替换工具,但仍需要一台一台登陆到服务器上 ...
- leetcode-122-买卖股票的最佳时机②
题目描述: 方法一: class Solution: def maxProfit(self, prices: List[int]) -> int: profit = 0 for i in ran ...
- CSS3 学习笔记(动画 多媒体查询)
动画 1.@keyframes规则用于创建动画.在@keyframes中规定某项CSS样式,就能创建由当前样式逐渐改为新样式的动画效果 2.使用animation进行动画捆绑.两个值:动画名称.时长 ...
- Spring中的Junit
Spring中的Junit package com.imooc.test.base; import org.junit.After; import org.junit.Before; import o ...