使用IO流复制文件,指定 文件/文件夹 绝对目录
2019-04-01 18:33
726 查看
版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_40468465/article/details/88954304
如果直接拷贝文件路径,貌似会报错,不知为什么.
大概是编码的问题
import java.io.*;
import java.util.Scanner;
public class CopyTest {
public static void main(String[] args) throws Exception {
//复制文件夹思路, 创建输入流和输出流
Scanner sc = new Scanner(System.in);
System.out.println(“注意,各级目录之间使用单斜杠划分!!!”);
System.out.println(“请输入需要拷贝的文件或者文件夹的绝对路径”);
String s = sc.next();
//String s = “J:\图片”;
//int length = s.length();
//String c = “H:\Test”;
System.out.println(“请输入文件存储的目标文件夹绝对路径”);
String c = sc.next();
if(new File(s).isFile()){ System.out.println("调用拷贝文件方法"); inFileA(new File(s),new File(c)); }else if(new File(s).isDirectory()){ System.out.println("调用拷贝多文件"); inFiles(new File(s),new File(c),s.length()); } } //如果为单文件就调用此方法 private static void inFileA(File infile,File outfile) throws Exception { if(infile.isFile()){//判断是文件的话,就进行拷贝 System.out.println("正在复制: "+infile.toString()); int len; byte [] c = new byte[1024]; FileInputStream fis = new FileInputStream(infile); FileOutputStream fos = new FileOutputStream(new File(outfile,infile.getName()),true); while ((len=fis.read(c)) != -1){ fos.write(c); } fis.close(); fos.close(); } } //如果是文件夹 private static void inFiles(File infile,File outfile,int length) throws Exception { File[] files = infile.listFiles();//获取需要复制的目标文件下的所有文件 FileInputStream fis = null; //创建输入流,然后判断是否为文件,如果是文件,就使用字节输入流获取文件 FileOutputStream fos = null;//创建输出流,然后将获取到的file创建在目标目录下 if (files !=null) { for (File file : files) {//获取File数组里面的每个file //判断是否存在相同文件夹 ,并实现复制文件夹功能 File file1 = new File(outfile,file.toString().substring(length)); System.out.println(new File(file1.toString())); if(!file1.exists()){ if(file.isDirectory()){ file1.mkdirs(); System.out.println("正在复制: "+ file.toString() ); inFiles(file,outfile,length); } if(file.isFile()){//判断是文件的话,就进行拷贝 int len; byte [] c = new byte[1024]; fis = new FileInputStream(file); fos = new FileOutputStream(file1,true); while ((len=fis.read(c)) != -1){ fos.write(c); // System.out.println("正在复制: "+file.toString()); } fis.close(); fos.close(); } }else{ System.out.println("文件已存在!"); } } } }
}
相关文章推荐
- 4、使用IO流输出指定目录下所有文件,并复制文件到指定目录
- IO流获取指定目录下所有txt文件的个数,并将这些txt文件复制到D盘test目录 用缓冲流实现. 注意: 需要判断test目录是否存在,如果不存在,使用代码创建
- 黑马程序员_某目录下的指定文件复制到指定文件夹内的操作
- 简单的IO流应用-将文件夹中的所有文件拷贝到指定目录下
- Java基础知识强化之IO流笔记49:IO流练习之 复制指定目录下指定后缀名的文件并修改名称的案例
- Android复制assets目录下所有文件及文件夹到指定路径
- 使用CMD模式批量删除指定目录(支持目录中多层文件夹嵌套)下指定格式文件
- 使用Python脚本删除指定文件夹下的指定目录及其文件
- linux复制指定目录下的全部文件到另一个目录中,linux cp 文件夹
- IO流--指定一个盘符下的文件,把该文件复制到指定的目录下
- linux复制指定目录下的全部文件到另一个目录中,linux cp 文件夹
- java-通过IO流复制文件夹到指定目录
- java复制文件夹下全部的文件到指定目录
- vb-复制ie临时文件夹下所有mp3文件到指定目录,并且将utf8编码转换过来
- java 复制文件夹下所有文件到指定的文件夹,不改变目录结构
- java遍历文件夹并复制文件到指定目录
- Dos命令复制文件夹到制定目录 删除指定目录及其文件夹下的文件
- Java学习之复制文件目录到指定文件夹
- 使用Python从各个子文件夹中复制指定文件的程序
- 批处理复制最新的文件夹里面的bmp文件到指定目录