309 复制单级文件夹
309 复制单级文件夹
单级文件夹,就是内部不含文件夹的文件夹,【文件夹套文件夹体系】的最底层
多级文件夹,内部包含文件夹的文件夹,【文件夹套文件夹体系】的非最底层
【思路】
(准备)(新建一个空文件夹,C:\develper\309)
(因为要复制目录、图片,因此采用字节流而不是字符流)
- 创建 数据源目录File对象
- 获取 数据源目录File对象的名称(复用原文件名)
- 创建 目的地目录File对象
- 判断 目的地目录的File是否存在,不存在则创建
- 获取 数据源目录下的所有文件的File数组
- 遍历 File数组,得到每一个File对象(这就是数据源)(以图片文件为例)
- 获取 数据源文件File对象的文件名
- 创建 目的地文件File对象,路径名包含文件名
- 复制 文件
【报错了】
File[] fileArray = srcFolder.listFiles();报错NullPointerException,应该是因为srcFolder目前是空文件夹,没有文件夹或文件
srcFolder应该是空的吗?回看视频确认一下
视频里是itcast文件夹,内含3个文件。。。
故修改Prepare类,在srcFolder内补充3个文件应该就可以了,
还是不行,还是那个报错,
回看视频检查代码
好了,是操作代码里路径没更新为修改后的路径
【关键语句】
File.mkdir() |
新建文件夹 |
File.createNewFile() |
新建文件 |
File[] arrayName=fileName.listFiles() |
创建File对象数组 (对象也可以作为元素组成数组) (listFiles方法返回目录中的文件和目录的File对象数组) |
for(File fileName:arrayName){ String sName=fileName.getName(); File fileName=new File(fileName,sName); methodName(fileName,fileName); } |
复制单级目录的全部数据 for(类型是对象 对象名:数组名){ String sName=fileName.getName();获取文件名 File fileName=new File(fileName,sName);使用原名称创建新文件 methodName(fileName,fileName);调用自己定义的方法,给的参数分别是数据源File对象、目的地File对象 }, |
byte[] bys=new byte[1024]; int i; while((len=bis.read())!=-1){ bos.write(bys,0,i); } |
(这是在methodName方法体内的)(使用数组方式)读and写数据源 |
File.mkdir新建文件夹
File.createNewFile新建文件
File.mkdir(),新建文件夹
File[] arrayName=fileName.listFiles(),创建File对象数组
,
--------------------------------------------------------------
package e309;
import java.io.File;
import java.io.IOException;
public class Prepare {
public static void main(String[] args) throws IOException {
File f = new File("C:\\develper\\309");
f.mkdir();
File f1 = new File("C:\\develper\\309\\jj.jpg");
f1.createNewFile();
File f2 = new File("C:\\develper\\309\\jj.png");
f2.createNewFile();
File f3 = new File("C:\\develper\\309\\jj.txt");
f3.createNewFile();
}
}
--------------------------------------------------------------
package e309;
import java.io.*;
public class CopyEmptyFolderDemo {
public static void main(String[] args) throws IOException {
File srcFolder = new File("C:\\develper\\309");
// 数据源
String srcFolderName = srcFolder.getName();
// 原文件名
File destFolder = new File("myCharStream\\src\\e309", srcFolderName);
if (!destFolder.exists()) {
destFolder.mkdir();
}
// 判断目的地目录是否存在,不存在则复制
File[] fileArray = srcFolder.listFiles();//!!!
// 创建file数组,listFiles()返回目录中的文件和目录的File对象数组
for (File srcFile : fileArray) {
String srcFileName = srcFile.getName();//???no need
File destFile = new File(destFolder, srcFileName);
copyFile(srcFile, destFile);//调用还没有定义的方法,方法名飘红报错,这时选中方法名按alt enter可快捷生成方法声明语句
}
// 调用copyFile方法 读数据源,写入目的地 实现复制文件
}
private static void copyFile(File srcFile, File destFile) throws IOException {
BufferedInputStream bis = new BufferedInputStream(new FileInputStream(srcFile));//fis的数据源可以是字符串的路径,也可以是一个标识符
BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream(destFile));
byte[] bys = new byte[1024];
int len;
while ((len = bis.read()) != -1) {
bos.write(bys, 0, len);
}
bis.close();
bos.close();
}
// 定义copyFile方法 读数据源,写入目的地
}
309 复制单级文件夹相关推荐
- 复制单级文件夹【应用】
案例需求 把"E:\leon"这个文件夹复制到模块目录下 分析步骤 创建数据源目录File对象,路径是E:\leon 获取数据源目录File对象的名称 创建目的地目录File对象, ...
- IO流案例,集合到文件数据排序、复制单级和多级文件夹及复制文件的异常处理
目录 一.集合到文件数据排序 二.复制单级文件夹 三.复制多级文件夹 四.复制文件的异常处理 基本做法: JDK7版本改进: JDK9版本改进: 一.集合到文件数据排序 需求: 键盘录入5个学生信息( ...
- Linux 中如何复制和删除文件夹中的所有文件?
Linux 中如何复制和删除文件夹中的所有文件? 1.复制文件 目标文件目录必须存在 (1) 直接复制 cp /hone/user/temp/test.c /home/user/ (2) 复制并重命名 ...
- 终于写了自己第一个有些用处的代码,留念留念,是模糊搜索并复制到指定文件夹...
for /f "delims=" %i in ('dir /ad /b /s H:\bjp\*20130528*') do (xcopy "%i" H:\mp3 ...
- 用复制mysql/data 文件夹 下面的数据库的形式来复制数据库出现的问题
用复制mysql/data 文件夹 下面的数据库的形式来复制数据库出现的问题 用复制mysql/data 文件夹 下面的数据库的形式来复制数据库出现的问题 提示找不到表,我去看了一下,丢失了很多个表: ...
- 如何复制服务器数据库文件大小,如何复制服务器数据库文件夹
如何复制服务器数据库文件夹 内容精选 换一换 您可以通过mongoexport的方式将数据库备份到弹性云服务器上,但不建议将弹性云服务器作为数据库备份空间使用.强烈推荐使用文档数据库实例的备份功能,将 ...
- win10 android 传多个文件夹,Win10使用ROBOCOPY快速复制多个文件夹的操作方法
Win10如何使用ROBOCOPY快速复制多个文件夹?ROBOCOPY是Win10自带的一款高级复制工具,通过ROBOCOPY工具我们可以同时复制多个文件,实现多线程传输文件.而在Win10系统默认情 ...
- win10 android 传多个文件夹,win10怎么使用ROBOCOPY快速复制多个文件夹
robocopy是一款高级的复制工具,相信大家很少接触过,那么robocopy有什么作用呢?我们可以通过robocopy就可以同时复制多个文件,轻松实现多线程传输文件.那么win10如何使用ROBOC ...
- python——查找指定文件并复制到指定文件夹
查找特定文件并复制.移动到指定文件夹下 # 查找复制被试需要的文件夹 import os import shutil #目标被试 a = [] f = open(r"H:/ADHD200/S ...
最新文章
- redis 数据库主从不一致问题解决方案
- ai包装插件_关于DIP异型插件机导入与相关来料标准研究
- 【CyberSecurityLearning 33】Nginx和Tomcat服务的搭建、Nginx负载均衡
- 5.4php-fpm配置,CentOS5.4下配置Nginx0.8.33+PHP5.3+PHP-fpm+MySQL5.5
- java架构师之路:推荐的15本书
- Android-基本控件和详解四种布局方式
- 夏普Sharp MX-C3581R 一体机驱动
- 如何将HTML与win10桌面壁纸,Win10默认桌面背景怎么设置
- 【转】关于测试方面的一些文章
- 关于Bundle Adjustment的直观理解
- 那些好看的渐变色linear-gradient(拿走不谢)
- AI人工智能技术在车载监控系统中有哪些应用?
- 信号的时域相位、频域相位
- 三级数据库知识点学习(五)
- 反病毒技术——UTM
- 百度云for mac破解方法--获取无限svip
- java meta_java面试:你真的知道metaspace??
- 用宅购节当前哨战,京东到家为双十一暗中蓄力
- 通州新城规划图 - 新通网http://www.xintongwang.com
- D3D11 MD5骨骼动画模型的加载
热门文章
- 【华为OD机试真题 JAVA】查找众数及中位数
- c语言相反数补码,C语言中补码的整数运算特性
- bugreport辅助调查anr问题
- 【从零开始的MC服务器】第三步:了解开服文件
- 暴力改进SSD | 小目标检测的福音
- 将Egg项目部署到阿里云服务器
- POI-5.2.2 操作 word 【表格】
- 关于springboot使用getServletContext().getRealPath(““)获取的是tomcat的临时缓存文件问题
- MySQL数据库介绍——包含索引、视图、事务、引擎
- 华剑智能冲刺上交所:年营收2.4亿 叶超英夫妇控制92%表决权