java将一个文件夹下的内容复制到另一个文件夹下 参考:
java将一个文件夹下的内容复制到另一个文件夹下_java将一个文件夹文件复制到另一个下-CSDN博客
java复制文件的4种方式及拷贝文件到另一个目录下的实例代码 - sunny123456 - 博客园 (cnblogs.com)
Java复制一个文件的内容到另一个文件的七种方法_java 复制文件-CSDN博客
JAVA new File (网络路径)-CSDN博客
Java中File使用–创建文件_file.parent-CSDN博客
笔记:jdk中File.mkdir()方法有坑-CSDN博客
java文件操作报错:java.io.FileNotFoundException:D..(拒绝访问)-CSDN博客
Java解决java.io.FileNotFoundException: E:\work\work (拒绝访问。) - 那些年的代码 - 博客园 (cnblogs.com)
[java将InputStream或bytes写入本地文件_java中如何将bytes]写到本地中-CSDN博客
注意 对于这个问题,你首先要知道“流”的概念,流就像水一样,源源不断的传送,它是一种数据传输的模式。根据数据流方向的不同,可分为输入流和输出流。 输入流就是把数据(键盘输入、鼠标、扫描仪等等外设设备)读入到内存(程序)中,输出流就是把内存(程序)中的数据输出到外设或其他地方,从文件角度简单总结就是,输入流就是读数据,输出流就是写数据。在这个过程中,始终把内存作为参考点。 在JAVA语言中,定义了专门的类用来表示输入和输出,这些类放在java.io包中。按数据传输单位划分,可以分为字节流和字符流。其中: 字节流:InputStream:继承自InputStream的流都是用于向程序中输入数据的,且数据单位都是字节(8位)。 OutputStream:继承自OutputStream的流都是程序用于向外输出数据的,且数据单位都是字节(8位)。 字符流:Reader:继承自Reader的流都是用于向程序中输入数据的,且数据单位都是字符(16位)。 Writer:继承自Writer的流都是程序用于向外输出数据的,且数据单位都是字符(16位)。
系统的路径是 D:\uploadFile\packagingMaterial\PO2303239 系统拷过来的路径是 "D:\\uploadFile\\packagingMaterial\\PO2303239" 我们需改为 D:/uploadFile/packagingMaterial/PO2303238 不然系统会提示没有找到该文件路径
简易版本的将D:/uploadFile/packagingMaterial/PO2303238/外箱/PO2303238-外箱-e7fdeb35-3cd4-44bd-844e-90254db698de.png的文件复制到D:/uploadFile/packagingMaterial/PO2303239/sss.png
public static void main(String[] args) throws IOException { File oldFile = new File("D:/uploadFile/packagingMaterial/PO2303238/外箱/PO2303238-外箱-e7fdeb35-3cd4-44bd-844e-90254db698de.png");//获取旧的文件File对象 File file = new File("D:/uploadFile/packagingMaterial/PO2303239/sss.png"); if (!file.exists()) { //判断要目标文件夹是否存在不存在则创建 File parentFile = file.getParentFile(); if (!parentFile.exists()) { parentFile.mkdirs(); } file.createNewFile(); } else { file.delete(); file.createNewFile(); } FileInputStream in = new FileInputStream(oldFile); FileOutputStream out = new FileOutputStream(file); byte[] buffer=new byte[2097152]; int readByte = 0; //读取旧文件的流写入新文件里 while((readByte = in.read(buffer)) != -1){ out.write(buffer, 0, readByte); } in.close(); out.close(); }
package com.star.io; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import java.util.Scanner; /** * @Title: CopyDir * @Description:复制一个文件夹的内容到另一个文件夹 * @Auther: huangxt * @Version: 1.0 * @create 2019/6/18 15:24 */ public class CopyDir { public static void copyDir(String sourcePath, String newPath) throws IOException { File file = new File(sourcePath); //获取文件夹File对象 String[] filePath = file.list(); //获取文件夹下所有内容的名称 if (!(new File(newPath)).exists()) { //判断要目标文件夹是否存在不存在则创建 (new File(newPath)).mkdir(); } for (int i = 0; i < filePath.length; i++) { //循环遍历 //判断是不是文件夹,是的话执行递归。file.separator 分隔符,如“/” if ((new File(sourcePath + file.separator + filePath[i])).isDirectory()) { copyDir(sourcePath + file.separator + filePath[i], newPath + file.separator + filePath[i]); } //判断是不是文件,是的话旧的文件拷至新的文件夹下 if (new File(sourcePath + file.separator + filePath[i]).isFile()) { copyFile(sourcePath + file.separator + filePath[i], newPath + file.separator + filePath[i]); } } } public static void copyFile(String oldPath, String newPath) throws IOException { File oldFile = new File(oldPath);//获取旧的文件File对象 File file = new File(newPath); //获取新的文件File对象并生成文件 FileInputStream in = new FileInputStream(oldFile); // FileOutputStream out = new FileOutputStream(file); byte[] buffer=new byte[2097152]; int readByte = 0; //读取旧文件的流写入新文件里 while((readByte = in.read(buffer)) != -1){ out.write(buffer, 0, readByte); } in.close(); out.close(); } public static void main(String[] args) throws IOException { Scanner sc = new Scanner(System.in); //启用输入 System.out.println("请输入源目录:"); String sourcePath = sc.nextLine(); // System.out.println("请输入新目录:"); String path = sc.nextLine(); //String sourcePath = "D://aa"; //String path = "D://bb"; copyDir(sourcePath, path); } }
[java将InputStream或bytes写入本地文件_java中如何将bytes]写到本地中-CSDN博客
/** * 将InputStream写入本地文件 * @param destination 写入本地目录 * @param input 输入流 * @throws IOException */ private static void writeToLocal(String destination, InputStream input) throws IOException { int index; byte[] bytes = new byte[1024]; FileOutputStream downloadFile = new FileOutputStream(destination); while ((index = input.read(bytes)) != -1) { downloadFile.write(bytes, 0, index); downloadFile.flush(); } downloadFile.close(); input.close(); }
/** * 将bytes写入本地文件 * @param destination * @param bytes * @throws IOException */ private static void writeToLocal(String destination, byte[] bytes) throws IOException { FileOutputStream downloadFile = new FileOutputStream(destination); downloadFile.write(bytes); downloadFile.flush(); downloadFile.close(); }