javaIO流实现文件拷贝
javaIO流其他流的练习
要求:
如c盘作业文件夹下分别有文本文档,子目录(子目录下有其他子目录和文本文档的文件)、图片格式文件。
如上涉及到的不止是文本,还有图片和子目录
所以要用到字节流FileInputStream ,FileOutputStream。当然也可以用缓冲流。
涉及多重子文件目录
需要用迭代
文件夹包括目录名和具体文件
对于目录,我们只需在路径生成就行
对于具体文件,我们要在对应的目录下面将其拷贝过去
对于抽象文件的处理,我们使用File
该类有关于文件的处理,如获取绝对路径,获取文件名等
private static void CopyDir(File filesrc, File filedest){if(filesrc.isFile()){//是文件先拷贝,再跳出该次递归,否则即为目录,进入目录操作。//System.out.println(filesrc.getAbsolutePath());//是文件就进行拷贝处理copyfile(filesrc,filedest);return;}File temFile=null;File[] files=filesrc.listFiles();for (File f:files) {//文件或目录File newdest=null;File newsrc=null;if(f.isDirectory()){/*当f是目录中的一个子目录时 进入*/String name=f.getName();String destDir=filedest.getAbsolutePath().endsWith("\\")?(filedest.getAbsolutePath()+name):(filedest.getAbsolutePath()+"\\"+name);/*System.out.println(destDir);*///在拷贝路径中生成新的目录newdest=new File(destDir);if(!newdest.exists())newdest.mkdirs();/*String srcDir=f.getAbsolutePath().endsWith("\\")?f.getAbsolutePath():(f.getAbsolutePath()+"\\");*/String srcDir=f.getAbsolutePath();System.out.println(srcDir);newsrc=new File(srcDir);temFile=newdest;//更新拷贝路径CopyDir(newsrc,temFile);}//temFile=newdest;/*当目录下的是一个文件时 进入下一次循环,然后直接拷贝*/if(!(f.isDirectory())){CopyDir(f,filedest);}}}
关于文件的拷贝涉及到的文件流,开头第一篇文章有,这里再次写一下
private static void copyfile(File src,File dest){FileInputStream fileInputStream=null;FileOutputStream fileOutputStream=null;String txt=dest.getAbsolutePath().endsWith("\\")?dest.getAbsolutePath():(dest.getAbsolutePath()+"\\")+src.getName();System.out.println(txt);try{fileInputStream=new FileInputStream(src);fileOutputStream=new FileOutputStream(txt);byte[] bytes=new byte[1024*1024];int readcount;while ((readcount=fileInputStream.read(bytes))!=-1){fileOutputStream.write(bytes,0,readcount);}fileOutputStream.flush();} catch (FileNotFoundException e) {e.printStackTrace();} catch (IOException e) {e.printStackTrace();} finally {if(fileInputStream!=null) {try {fileInputStream.close();} catch (IOException e) {e.printStackTrace();}}if(fileOutputStream!=null){try {fileOutputStream.close();} catch (IOException e) {e.printStackTrace();}}}}
主函数
public static void main(String[] args) {File filesrc=new File("C:\\Users\\wish_cai\\Pictures\\作业");File filedest=new File("D:\\bilibili\\JJDown\\Download\\Java零基础教程视频(适合Java 0基础,Java初学入门)\\copy\\");CopyDir(filesrc,filedest);}
javaIO流实现文件拷贝相关推荐
- 解决关于java的IO流进行文件拷贝时拒绝访问的问题
解决关于java的IO流进行文件拷贝时拒绝访问的问题 1.在学习java IO流的时候,想进行文件的自动拷贝功能,我的代码是在idea中编写的,编写没有报红,但是运行时却出现了java.io.File ...
- JavaIO流中的拷贝
JavaIO流中对数据的操作尤为重要,掌握了基本的拷贝操作,才能将各种数据源的操作联系起来. 先来看看对文件夹的拷贝吧: 1 /** 2 * 利用递归实现文件夹的拷贝操作 3 * 分析:判断 4 * ...
- Java------IO流之文件专属流
文件专属流 文章目录 文件专属流 FileInputStream流 FileInputStream初步读取 FileInputStream循环读 IDEA默认当前路径 往byte数组中读 最终版Fil ...
- java-IO流-在文件中数据内容的插入问题
1问题 在某个文件的中间某个位置插入字符串,例如: 文件内容:abcd 插入内容:123 插入下标:2 预期结果:ab123cd 2基本思路 1.校验参数的合法性 2.将指针移动到插入的位置 3.通过 ...
- java-IO流-将文件夹以树形结构打印(打印文件夹目录)问题
问题 将一个文件夹下的文件(包括目录)以树形结构打印出来,等级目录要有标识 基本思路 1.参数合法性校验 2.如果是文件 当前属于第几层打印层级表示和文件名 3.如果是目录的 进入目录 当前是第 ...
- JavaIO流之文件路径
斜杠和反斜杠 正斜杠,又称左斜杠,符号是"/": 反斜杠,也称右斜杠,符号是"\". 在Unix/Linux中,路径的分隔采用正斜"/",比 ...
- IO流进行文件读写操作
IO流进行文件读写操作 一.Java程序读excel文件 excel文件分为xls,xlsx和csv文件. 1.xls和xlsx的主要区别是版本不同: xls是excel2003及以前版本所生成的文件 ...
- javaIO流之转换流
目录 简介 一.编码和解码 二.字符集 2.1ASCII 字符集 2.2Unicode 字符集 2.3GBK 字符集 三.乱码 四.InputStreamReader 4.1构造方法 4.2解决编码问 ...
- 普通IO流字符输入输出流文件拷贝
import java.io.*;/*** 普通IO流字符输入输出流文件拷贝** @author silence*/ public class Silence {public static void ...
- IO流,字节流文件拷贝示例 [FileInputStream FileOutputStream]
字节流文件拷贝FileInputStream FileOutputStream: import java.io.File; import java.io.FileInputStream; import ...
最新文章
- 解决ajax.open方法失效问题
- mastercam2019中文版
- c#扩展方法奇思妙用变态篇四:string 的翻身革命
- MR/hive/shark/sparkSQL
- horizon client 无法识别域_LY-W100摄像头视频定时拍照图像识别分析抄表读表无线远传水表数_水表吧...
- python简单开发接口
- PHP流式上传和表单上传(美图秀秀)
- [转载] 快速学习-Mybatis框架概述
- spring_boot 与MyBatis 整合
- 基于51单片机的计算器
- Android开发笔记(四十一)Service的生命周期
- asp.net MD5数据加密和解密
- 【BIM入门实战】渲染器Vray for 3d max 2018图文安装教程
- “C语言之父”40年前搞的操作系统复活!Linux、Windows都借鉴过它
- windows 10 下载工具
- C. Get an Even String题解(dp)
- Prometheus Operator 安装
- 跨越6XX和4XX排名纪实
- java 第三方库common系统详解
- 山东大学软件工程应用与实践——WeaselTSF(一)
热门文章
- Java 简单工厂模式和工厂模式(类图及实现)
- 利用quietHDD解决硬盘C1增长以及异响问题
- java类 家族成员 姓氏_中国史上十大家族,占据中国九大姓,看看有没有你的姓氏...
- TM2008 Preview体验
- php adodb类库下载,PHP ADODB连接、操作数据库类
- 中国输配电设备产业需求形势及运行战略规划建议报告2021年版
- 关于打印室计算机购置的申请书,物资采购申请书格式范文
- python论文排版_学位论文排版教程1
- 元胞自动机小团体matlab,元胞自动机matlab程序代码
- C# 正则表达式大全