309 复制单级文件夹

单级文件夹,就是内部不含文件夹的文件夹,【文件夹套文件夹体系】的最底层

多级文件夹,内部包含文件夹的文件夹,【文件夹套文件夹体系】的非最底层

【思路】

(准备)(新建一个空文件夹,C:\develper\309)

(因为要复制目录、图片,因此采用字节流而不是字符流)

  1. 创建 数据源目录File对象
  2. 获取 数据源目录File对象的名称(复用原文件名)
  3. 创建 目的地目录File对象
  4. 判断 目的地目录的File是否存在,不存在则创建
  5. 获取 数据源目录下的所有文件的File数组
  6. 遍历 File数组,得到每一个File对象(这就是数据源)(以图片文件为例)
  7. 获取 数据源文件File对象的文件名
  8. 创建 目的地文件File对象,路径名包含文件名
  9. 复制 文件

【报错了】

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 复制单级文件夹相关推荐

  1. 复制单级文件夹【应用】

    案例需求 把"E:\leon"这个文件夹复制到模块目录下 分析步骤 创建数据源目录File对象,路径是E:\leon 获取数据源目录File对象的名称 创建目的地目录File对象, ...

  2. IO流案例,集合到文件数据排序、复制单级和多级文件夹及复制文件的异常处理

    目录 一.集合到文件数据排序 二.复制单级文件夹 三.复制多级文件夹 四.复制文件的异常处理 基本做法: JDK7版本改进: JDK9版本改进: 一.集合到文件数据排序 需求: 键盘录入5个学生信息( ...

  3. Linux 中如何复制和删除文件夹中的所有文件?

    Linux 中如何复制和删除文件夹中的所有文件? 1.复制文件 目标文件目录必须存在 (1) 直接复制 cp /hone/user/temp/test.c /home/user/ (2) 复制并重命名 ...

  4. 终于写了自己第一个有些用处的代码,留念留念,是模糊搜索并复制到指定文件夹...

    for /f "delims=" %i in ('dir /ad /b /s H:\bjp\*20130528*') do (xcopy "%i" H:\mp3 ...

  5. 用复制mysql/data 文件夹 下面的数据库的形式来复制数据库出现的问题

    用复制mysql/data 文件夹 下面的数据库的形式来复制数据库出现的问题 用复制mysql/data 文件夹 下面的数据库的形式来复制数据库出现的问题 提示找不到表,我去看了一下,丢失了很多个表: ...

  6. 如何复制服务器数据库文件大小,如何复制服务器数据库文件夹

    如何复制服务器数据库文件夹 内容精选 换一换 您可以通过mongoexport的方式将数据库备份到弹性云服务器上,但不建议将弹性云服务器作为数据库备份空间使用.强烈推荐使用文档数据库实例的备份功能,将 ...

  7. win10 android 传多个文件夹,Win10使用ROBOCOPY快速复制多个文件夹的操作方法

    Win10如何使用ROBOCOPY快速复制多个文件夹?ROBOCOPY是Win10自带的一款高级复制工具,通过ROBOCOPY工具我们可以同时复制多个文件,实现多线程传输文件.而在Win10系统默认情 ...

  8. win10 android 传多个文件夹,win10怎么使用ROBOCOPY快速复制多个文件夹

    robocopy是一款高级的复制工具,相信大家很少接触过,那么robocopy有什么作用呢?我们可以通过robocopy就可以同时复制多个文件,轻松实现多线程传输文件.那么win10如何使用ROBOC ...

  9. python——查找指定文件并复制到指定文件夹

    查找特定文件并复制.移动到指定文件夹下 # 查找复制被试需要的文件夹 import os import shutil #目标被试 a = [] f = open(r"H:/ADHD200/S ...

最新文章

  1. redis 数据库主从不一致问题解决方案
  2. ai包装插件_关于DIP异型插件机导入与相关来料标准研究
  3. 【CyberSecurityLearning 33】Nginx和Tomcat服务的搭建、Nginx负载均衡
  4. 5.4php-fpm配置,CentOS5.4下配置Nginx0.8.33+PHP5.3+PHP-fpm+MySQL5.5
  5. java架构师之路:推荐的15本书
  6. Android-基本控件和详解四种布局方式
  7. 夏普Sharp MX-C3581R 一体机驱动
  8. 如何将HTML与win10桌面壁纸,Win10默认桌面背景怎么设置
  9. 【转】关于测试方面的一些文章
  10. 关于Bundle Adjustment的直观理解
  11. 那些好看的渐变色linear-gradient(拿走不谢)
  12. AI人工智能技术在车载监控系统中有哪些应用?
  13. 信号的时域相位、频域相位
  14. 三级数据库知识点学习(五)
  15. 反病毒技术——UTM
  16. 百度云for mac破解方法--获取无限svip
  17. java meta_java面试:你真的知道metaspace??
  18. 用宅购节当前哨战,京东到家为双十一暗中蓄力
  19. 通州新城规划图 - 新通网http://www.xintongwang.com
  20. D3D11 MD5骨骼动画模型的加载

热门文章

  1. 【华为OD机试真题 JAVA】查找众数及中位数
  2. c语言相反数补码,C语言中补码的整数运算特性
  3. bugreport辅助调查anr问题
  4. 【从零开始的MC服务器】第三步:了解开服文件
  5. 暴力改进SSD | 小目标检测的福音
  6. 将Egg项目部署到阿里云服务器
  7. POI-5.2.2 操作 word 【表格】
  8. 关于springboot使用getServletContext().getRealPath(““)获取的是tomcat的临时缓存文件问题
  9. MySQL数据库介绍——包含索引、视图、事务、引擎
  10. 华剑智能冲刺上交所:年营收2.4亿 叶超英夫妇控制92%表决权