Java I/O操作六
时间:2019-03-19
本文章向大家介绍Java I/O操作六,主要包括Java I/O操作六使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
实现文件夹的遍历和复制
1.文件夹遍历
public static void ergodic(String path){
File file = new File(path);
for (File one : file.listFiles()) {
System.out.println("路径:" + one.getPath());
System.out.println("类型:" + one.isDirectory());
// 如果是文件夹,继续获取该子文件夹下面的内容
if (one.isDirectory()) {
for (File f : one.listFiles()) {
System.out.println("=路径:" + f.getPath());
// 检查是否有Directory,有就继续获取.listFiles()
}
}
}
}
这种方法运用了递归的思想。
2.文件夹复制
1.首先进行文件的复制,有两种方法,分别是用字符流和用字节流进行复制
首先用字符流进行复制
/**
* 该方法实现文件的复制
* @param path1 待复制的文件
* @param path2 文件复制到的地址
*/
public static void copy1(String path1, String path2){
FileReader fr;
FileWriter fw;
try {
fr = new FileReader(path1);
try{
fw = new FileWriter(path2);
char [] c = new char [30];
int n = 0;
while (-1 != (n = fr.read(c))){
fw.write(c, 0 ,n);
}
fw.close();
fr.close();
}catch(IOException e){
e.printStackTrace();
}
} catch (FileNotFoundException e) {
e.printStackTrace();
}
}
2.用字节流进行复制
/**
* 该方法实现文件的复制
* @param path1 待复制的文件
* @param path2 文件复制到的地址
*/
public static void copy2(String path1, String path2){
try{
FileInputStream fileReader = new FileInputStream(path1);
try{
FileOutputStream fileWriter = new FileOutputStream(path2);
int n = 0;
byte [] b = new byte [30];
while (-1 != (n = fileReader.read(b))){
fileWriter.write(b, 0, n);
}
fileWriter.close();
fileReader.close();
}catch(IOException e){
e.printStackTrace();
}
}catch(FileNotFoundException e){
e.printStackTrace();
}
}
注意:字符流只能进行.txt文件的复制,其他的格式要用字节流的方式进行复制。
3.最后用递归的思想进行文件夹的复制,其实质是用递归的方法遍历文件夹,遇到文件就复制
/**
* 该方法实现文件夹的复制
* @param path1 待复制的文件夹
* @param path2 文件夹复制到的地址
*/
public static void copy3(String path1, String path2){
File f1 = new File(path2);
// 获取源文件夹当前下的文件或目录
File file = new File(path1);
if (file.isFile()) {
// 复制文件 ,copy2是上面复制文件的方法
copy2(file.getAbsolutePath(), path2);
System.out.println("sssssssssss");
}
else if (file.isDirectory()) {
f1.mkdirs();
for (File f : file.listFiles()){
String path = path2+"\\" + f.getName();
System.out.println("------------");
// 递归,调用自己
copy3(f.getAbsolutePath(), path);
}
}
}
- 1054: [HAOI2008]移动玩具
- MatrixTree速成
- 1元搭建自己的云服务器&解析域名
- 洛谷P4180 [Beijing2010组队]次小生成树Tree
- 携程开源数据库访问框架
- LOJ #108. 多项式乘法
- 【作业】HansBug的前三次OO作业分析与小结
- 【备忘】Idea的那些事
- 洛谷P1919 【模板】A*B Problem升级版(FFT快速傅里叶)
- win10下vagrant+centos7 rails虚拟开发机配置流程
- 再免费多看一章--k-means++
- 面向对象先导课感想
- 【LATEX】个人版latex论文模板
- 【前端】wangEditor(富文本编辑器) 简易使用示例
- java教程
- Java快速入门
- Java 开发环境配置
- Java基本语法
- Java 对象和类
- Java 基本数据类型
- Java 变量类型
- Java 修饰符
- Java 运算符
- Java 循环结构
- Java 分支结构
- Java Number类
- Java Character类
- Java String类
- Java StringBuffer和StringBuilder类
- Java 数组
- Java 日期时间
- Java 正则表达式
- Java 方法
- Java 流(Stream)、文件(File)和IO
- Java 异常处理
- Java 继承
- Java 重写(Override)与重载(Overload)
- Java 多态
- Java 抽象类
- Java 封装
- Java 接口
- Java 包(package)
- Java 数据结构
- Java 集合框架
- Java 泛型
- Java 序列化
- Java 网络编程
- Java 发送邮件
- Java 多线程编程
- Java Applet基础
- Java 文档注释
- Android 多线程实现重复启动与停止的服务
- Android 简单的图片查看器源码实现
- jmeter在linux系统下运行及本地内存调优的方法详解
- Android实现录音功能实现实例(MediaRecorder)
- Linux下9种优秀的代码比对工具推荐小结
- Android开发实现在Wifi下获取本地IP地址的方法
- Android基于Glide v4.x的图片加载进度监听
- Android如何通过scheme跳转界面
- Android EditText实现输入金额类型详解
- ubuntu20.04中文输入法安装步骤
- 如何利用Android Studio将moudle变成jar示例详解
- Android自带的四种线程池使用总结
- CentOS8.1搭建Gitlab服务器详细教程
- Android开发之图片旋转功能实现方法【基于Matrix】
- Android编程简单实现拨号器功能的方法