IO中那些流之文件复制
来源:互联网 发布:js怎样仿写shift 编辑:程序博客网 时间:2024/05/21 16:52
上一篇已经简单介绍了IO流,其实阿帕奇已经提供了很多第三方jar包,已经封装了IO流的功能,为我们简化了不少代码。但是我们了解一些原理,用起这些方法来也会得心应手的。
IO流实现将一个文件夹拷贝到另一个文件夹:
思路:1.先对文件进行读取,然后在将文件写出
2 文件夹是不能复制的,只能对里面的文件进行复制
3.对文件夹我们可以进行创建。
有的需要创建本地路径, 本地路径就是 创建Fie f=new File("number.txt");//任意一个文件名即可
.
public static void copy(File source,File ss){ //这个是为了创建文件 int count=0; File des=new File(ss,source.getName()); des.mkdirs();//G:\\英语\\学习 File[] listFiles = source.listFiles(); FileInputStream fis=null; FileOutputStream fos=null; for (File file : listFiles) {if(file.isDirectory()){copy(file,des); //进行递归,遍历里面的文件}else{ //如果是文件向下执行try {//进行文件复制fis=new FileInputStream(file); //H:\\学习fos=new FileOutputStream(new File(des,file.getName()));//进行文件复制时源文件与目标文件文件结尾是相同的 byte[] b=new byte[1024]; //是以字节数组进行读取,比起一个字节一个字节的读,加快了速度int len=0;while((len=fis.read(b))!=-1){fos.write(b,0,len);}} catch (Exception e) {// TODO: handle exception}finally {try {fos.close();fis.close();}
如果这些不懂也没有关系,因为一些第三方jar包已经提供了这些功能。
引进commons-io.jar
1.加入classpath的第三方jar包内的class文件才能在项目中使用,创建lib文件夹,将commons-io.jar拷贝到lib文件夹。
2.右键点击commons-io.jar,Build Path→Add to Build Pat
它提供了一个处理文件操作的类:FilenameUtils。因为里面定义的是静态方法,可以直接使用类里面的方法。
常用方法:
getExtension(String path) 获取文件的扩展名
getName() 获取文件名
isExtention 判断fileName是否以某个后缀名结尾
readFileToString(File file):读取文件内容,并返回一个String;
writeStringToFile(File file,String content):将内容content写入到file中;
copyDirectoryToDirectory(File srcDir,File destDir);文件夹复制
copyFile(File srcFile,File destFile);文件夹复制
在项目中我们可能会涉及到上传文档的问题,有的会有要求,上传的文档不能超过多大,我们需要知道1KB就是1024。如果想要控制上传的扩展名,我们可以用getExtension来获取。
- IO中那些流之文件复制
- IO流之复制文件
- IO流之复制文件夹中及其子目录中的文件
- IO流文件复制
- IO流文件复制
- IO流复制文件
- IO流---文件复制
- IO之文件复制粘贴
- 黑马程序员-学习笔记2-IO流之文件复制
- Java IO流之拷贝(复制)文件
- java例题学习之IO流复制文件练习
- Java IO流之拷贝(复制)文件
- Java中IO流文件读取、写入和复制
- java中通过IO流实现文件的复制
- java中IO流的文件简单的复制
- Io流,文件复制与文件夹复制
- 《java----IO流---文件复制》
- IO 流实现文件复制
- 自定义下拉刷新
- GDAL环境搭建(JAVA)
- Tomcat 6.0 简介
- 一个jsp页面多次提交form
- Oracle、Db2、SqlServer、MySQL 数据库插入当前系统时间
- IO中那些流之文件复制
- zzulioj-1965-Big Prize【思维】【数学组合】
- Android应用获取通知栏权限是否开启--以及跳转到系统设置界面--解决方案
- Glide下载图片和缓存图片
- 基于面向对象的分页组件
- PAT乙级 1007. 素数对猜想
- fh admin SpringMVC mybatis 多数据源 SSM
- POI java excel 生成下拉列表
- linux下 c++ 服务器开发(四)