Java基础学习笔记总结(1)目录拷贝,递归方法,java代码实现。
2021/9/8 1:06:12
本文主要是介绍Java基础学习笔记总结(1)目录拷贝,递归方法,java代码实现。,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
代码思路:
首先读取要拷贝的目录,然后根据这个目录的类型(目录/文件)进行分类,如果是目录,就递归调用子目录,如果是文件,就用IO流进行读取和写入。
新目录和新文件的创建涉及到字符串的拼接,这里要用绝对路径。
关于代码中的几个方法,可以网上查询,对于java常用类中的方法,我也会在后面总结一下。
package IOStreamTest; //拷贝目录 import java.io.*; public class FileTest { public static void main(String[] args) { File file = new File("C:\\Users\\lenovo\\Desktop\\JAVASE\\002-JavaSE每章作业"); File file2=new File("D:\\"); fileCopy(file,file2); } public static void fileCopy(File file,File file2){ //判断file是否为文件,如果是文件,则用文件输入输出流进行文件的复制。 if(file.isFile()){ //在这里创建in和out引用,使其作用域在if里面整个区域,保证后面可以关闭。 FileInputStream in = null; FileOutputStream out=null; try { in =new FileInputStream(file); //这里用了一个三目运算符解决file2的绝对路径以\\结尾的情况,通过+实现字符串拼接。 out =new FileOutputStream((file2.getAbsolutePath().endsWith("\\")?file2.getAbsolutePath():file2.getAbsolutePath()+"\\")+file.getAbsolutePath().substring(3)); byte[] bytes=new byte[1024*1024]; //flag表示读取的字符数量 int flag=0; while((flag=in.read(bytes))!=-1){ out.write(bytes,0,flag); } out.flush(); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } finally { if (in != null) { try { in.close(); } catch (IOException e) { e.printStackTrace(); } } if(out!=null){ try { out.close(); } catch (IOException e) { e.printStackTrace(); } } } return; } //这个listFiles方法是获取子目录 File[] files = file.listFiles(); //增强for循环 for(File fileTest:files){ if(fileTest.isDirectory()){ String translate = fileTest.getAbsolutePath(); //System.out.println("ML"+translate.substring(3)); //System.out.println((file2.getAbsolutePath().endsWith("\\")?file2.getAbsolutePath():file2.getAbsolutePath())+"\\"+translate.substring(3)); File newDir=new File((file2.getAbsolutePath().endsWith("\\")?file2.getAbsolutePath():file2.getAbsolutePath()+"\\")+translate.substring(3)); if(!newDir.exists()){ newDir.mkdirs(); } } fileCopy(fileTest,file2); } } }
如果有优化建议或者疑问,欢迎在评论区留言。
这篇关于Java基础学习笔记总结(1)目录拷贝,递归方法,java代码实现。的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-24Java中定时任务实现方式及源码剖析
- 2024-11-24Java中定时任务实现方式及源码剖析
- 2024-11-24鸿蒙原生开发手记:03-元服务开发全流程(开发元服务,只需要看这一篇文章)
- 2024-11-24细说敏捷:敏捷四会之每日站会
- 2024-11-23Springboot应用的多环境打包入门
- 2024-11-23Springboot应用的生产发布入门教程
- 2024-11-23Python编程入门指南
- 2024-11-23Java创业入门:从零开始的编程之旅
- 2024-11-23Java创业入门:新手必读的Java编程与创业指南
- 2024-11-23Java对接阿里云智能语音服务入门详解