1、导入classpath

  (1)加入classpath的第三方jar包内的class文件才能在项目中使用;

  (2)创建lib文件夹;

  (3)将commons-io.jar拷贝到lib文件夹;

  (4)右键点击commons-io.jar,Build Path→Add to Build Path。

  commons-io-2.4.zip下载链接:commons-io-2.4.zip密码:hczn

2、FilenameUtils

  (1)这个工具类是用来处理文件名(包含文件路径)的,它可以轻松解决不同操作系统文件名称规范不同的问题;

  (2)常用方法

    ①getExtension(String path):获取文件的扩展名;

    ②getName():获取文件名;

    ③isExtension(String fileName,String ext):判断fileName是否是ext后缀名;
3、FileUtils

  (1)提供文件操作(移动文件,读取文件,检查文件是否存在等等)的方法;

  (2)常用方法

    ①readFileToString(File file):读取文件内容,并返回一个String;

    ②writeStringToFile(File file,String content):将内容content写入到file中;

    ③copyDirectoryToDirectory(File srcDir,File destDir);文件夹复制;

    ④copyFile(File srcFile,File destFile);文件夹复制。

  

  (3)代码演示

    ①完成文件的复制,测试视频链接:测试视频 密码:jhsi

 import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException; import org.apache.commons.io.FileUtils; /*
* 完成文件的复制
*/
public class CommonsIODemo01 {
public static void main(String[] args) throws IOException {
// method1("D:\\test.mp4", "D:\\copy.mp4"); // 通过Commons-IO完成了文件复制的功能
FileUtils.copyFile(new File("D:\\test.mp4"), new File("D:\\copy.mp4"));
} // 文件的复制
private static void method1(String src, String dest) throws IOException {
// 1,指定数据源
BufferedInputStream in = new BufferedInputStream(new FileInputStream(
src));
// 2,指定目的地
BufferedOutputStream out = new BufferedOutputStream(
new FileOutputStream(dest));
// 3,读
byte[] buffer = new byte[1024];
int len = -1;
while ((len = in.read(buffer)) != -1) {
// 4,写
out.write(buffer, 0, len);
}
// 5,关闭流
in.close();
out.close();
}
}

    ②完成文件、文件夹的复制,测试视频链接:测试视频 密码:jhsi

 import java.io.File;
import java.io.IOException; import org.apache.commons.io.FileUtils; /*
* 完成文件、文件夹的复制
*/
public class CommonsIODemo02 {
public static void main(String[] args) throws IOException {
// 通过Commons-IO完成了文件复制的功能
FileUtils.copyFile(new File("D:\\test.mp4"), new File("D:\\copy.mp4")); // 通过Commons-IO完成了文件夹复制的功能
// 把old文件夹以及old文件夹下的test.mp4文件复制到new文件夹,复制后test.mp4的路径是D:\Java\new\old
FileUtils.copyDirectoryToDirectory(new File("D:\\Java\\old"), new File(
"D:\\Java\\new"));
}
}

  

00099_commons-IO的更多相关文章

  1. VS2015编译GEOS

    下载链接:http://trac.osgeo.org/geos/ 1. 打开cmake,加载geos源码和定位geos的工程存放位置: 2.点击configure,会报错,首先设置CMAKE_INST ...

  2. 高性能IO模型浅析

    高性能IO模型浅析 服务器端编程经常需要构造高性能的IO模型,常见的IO模型有四种: (1)同步阻塞IO(Blocking IO):即传统的IO模型. (2)同步非阻塞IO(Non-blocking  ...

  3. 深究标准IO的缓存

    前言 在最近看了APUE的标准IO部分之后感觉对标准IO的缓存太模糊,没有搞明白,APUE中关于缓存的部分一笔带过,没有深究缓存的实现原理,这样一本被吹上天的书为什么不讲透彻呢?今天早上爬起来赶紧找了 ...

  4. [APUE]标准IO库(下)

    一.标准IO的效率 对比以下四个程序的用户CPU.系统CPU与时钟时间对比 程序1:系统IO 程序2:标准IO getc版本 程序3:标准IO fgets版本 结果: [注:该表截取自APUE,上表中 ...

  5. [APUE]标准IO库(上)

    一.流和FILE对象 系统IO都是针对文件描述符,当打开一个文件时,即返回一个文件描述符,然后用该文件描述符来进行下面的操作,而对于标准IO库,它们的操作则是围绕流(stream)进行的. 当打开一个 ...

  6. [.NET] 利用 async & await 进行异步 IO 操作

    利用 async & await 进行异步 IO 操作 [博主]反骨仔 [出处]http://www.cnblogs.com/liqingwen/p/6082673.html  序 上次,博主 ...

  7. [原] KVM 虚拟化原理探究(6)— 块设备IO虚拟化

    KVM 虚拟化原理探究(6)- 块设备IO虚拟化 标签(空格分隔): KVM [toc] 块设备IO虚拟化简介 上一篇文章讲到了网络IO虚拟化,作为另外一个重要的虚拟化资源,块设备IO的虚拟化也是同样 ...

  8. [原] KVM 虚拟化原理探究(5)— 网络IO虚拟化

    KVM 虚拟化原理探究(5)- 网络IO虚拟化 标签(空格分隔): KVM IO 虚拟化简介 前面的文章介绍了KVM的启动过程,CPU虚拟化,内存虚拟化原理.作为一个完整的风诺依曼计算机系统,必然有输 ...

  9. Performance Monitor4:监控SQL Server的IO性能

    SQL Server的IO性能受到物理Disk的IO延迟和SQL Server内部执行的IO操作的影响.在监控Disk性能时,最主要的度量值(metric)是IO延迟,IO延迟是指从Applicati ...

  10. java.IO输入输出流:过滤流:buffer流和data流

    java.io使用了适配器模式装饰模式等设计模式来解决字符流的套接和输入输出问题. 字节流只能一次处理一个字节,为了更方便的操作数据,便加入了套接流. 问题引入:缓冲流为什么比普通的文件字节流效率高? ...

随机推荐

  1. python多线程理解

    在发送网络请求的过程中,单个请求的速度总是有着很大的限制,而任务往往需要以更快的速度去执行,这时多线程就是一个很好地选择.python已经给我们封装好了多线程库thread和threading. th ...

  2. 【使用uWSGI和Nginx来设置Django和你的Web服务器】

    目录 安装使用uWSGI 配置Nginx结合uWSGI supervisor Django静态文件与Nginx配置 @ *** 所谓WSGI . WSGI是Web服务器网关接口,它是一个规范,描述了W ...

  3. 洛谷——P1027 Car的旅行路线

    https://www.luogu.org/problem/show?pid=1027#sub 题目描述 又到暑假了,住在城市A的Car想和朋友一起去城市B旅游.她知道每个城市都有四个飞机场,分别位于 ...

  4. 从零開始的Android新项目7 - Data Binding入门篇

    Data Binding自从去年的Google I/O公布到至今,也有近一年的时间了.这一年来,从Beta到如今比較完好的版本号.从Android Studio 1.3到如今2.1.2的支持,能够说D ...

  5. JBoss配置连接池

    什么是数据库连接池? 配置连接池为的是解决效率问题.由于每创建一个连接都是非常耗时的,有了连接池,就能够提前放一些连接进去.以后我们再用连接就去连接池里面取而不是每次都创建.可是我们知道连接池是有上限 ...

  6. poj 1087 A Plug for UNIX(字符串编号建图)

    A Plug for UNIX Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 14862   Accepted: 5026 ...

  7. android ActionBar的使用

    Action Bar主要功能包括:   1. 显示选项菜单   2. 提供标签页的切换方式的导航功能,能够切换多个fragment.    3.  提供下拉的导航条目.   4. 提供交互式活动视图取 ...

  8. Android ScrollView滚动实现大众点评、网易云音乐评论悬停效果

    今天听着网易云音乐,写着代码,真是爽翻了. http://blog.csdn.net/linshijun33/article/details/47910833 网易云音乐这个产品亮点应该在评论这一模块 ...

  9. PHP CLI模式下的多进程应用分析

    PHP在非常多时候不适合做常驻的SHELL进程, 他没有专门的gc例程, 也没有有效的内存管理途径. 所以假设用PHP做常驻SHELL, 你会常常被内存耗尽导致abort而unhappy 并且, 假设 ...

  10. shape-自绘制简单图形

    shape 可以绘制简单的图形,颜色等.它主要就是应用于selector 的一些状态. 本文内容参考自http://www.cnblogs.com/cyanfei/archive/2012/07/27 ...