阅读 57

java web,java工具类创建说明

package cn.xingoo.learn.commons;

importorg.Apache.com mons.io.fileutils;

importorg.Apache.com mons.io.filefilter.directory filefilter;

importorg.Apache.com mons.io.file filter.file file filter;

importorg.Apache.com mons.io.file filter.file filter utils;

importorg.Apache.com mons.io.filefilter.io filefilter;

import org.junit.Test;

import java.io.*;

import java.net.URL;

import java.util.Date;

import java.util.Iterator;

import java.util.List;

import java.util.zip.CRC32;

//*

* FileUtils支持许多文件操作,包括

*

*文件写入

*读取文件

*编制目录

复制文件和目录

删除文件和目录

从URL转换

*基于文件和目录集成和过滤的视图

*比较文件内容

*文件更新时间

*检查检查代码

*

* Created by xxh on 2016/11/24。

*/

公共类文件测试{

privatestaticfileparent=new file (' d ://test );

@Test

公共语音获取测试(

//获得基本信息

system.out.println (fileutils.gettempdirectory () ); //获取临时目录java.io.tmpdir,getUserDirectoryPath并返回路径字符串

system.out.println (fileutils.getuser directory () ); //获取用户的主目录user.home,getUserDirectoryPath并返回路径字符串

//以可读方式返回文件大小EB,PB,TB,GB,MB,KB or bytes

system.out.println (fileutils.bytecounttodisplaysize (1000000 ) );

system.out.println (fileutils.bytecounttodisplaysize (1);

}

@Test

public void openStream () throws IOException { ) )。

获取//文件导入和导出的文件流

//文件是目录还是不存在会导致异常

inputstream in=fileutils.open inputstream (new file ) (d://test/test1 ) );

输出流输出=fileutils.open输出流(new file (' d ://test/test2' ) );

out=fileutils.open output stream (new file (d ://test/test3),true ); //是否以其他形式添加内容

}

@Test

公共void file operation () throws IOException { )。

创建//文件,如果文件存在,则如果更新时间不存在,则创建空文件

//如何创建空文件:

//finaloutputstreamout=open output stream (file;

//Ioutils.closequietly () out;

fileutils.touch (new file (d ://test/test4) );

//比较文件内容

fileutils.content equals (new file (d ://test/test1 )、new file (d ://test/test2) );

fileutils.contentequalsignoreeol (new file (d ://test/test1 )、new file (d ://test/test2)、null //换行符

从//URL获取文件

FileUtils.to

File(new URL("file://D://test/test1"));


FileUtils.toFiles(null);

FileUtils.toURLs(new File[]{new File("D://test/test1")});

//文件拷贝

FileUtils.copyFileToDirectory(new File("/test1"),new File("/dir"),true);//第三个参数是否更新时间

FileUtils.copyFile(new File("/source"),new File("/target"),true);//TODO 阅读doCopy源码

//目录拷贝

File srcDir = new File("/source");

File destDir = new File("/target");

FileUtils.copyDirectoryToDirectory(new File("/source"),new File("/target"));

FileUtils.copyDirectory(new File("/source"),new File("/target"));

FileUtils.copyDirectory(srcDir, destDir, DirectoryFileFilter.DIRECTORY);//仅仅拷贝目录

IOFileFilter txtSuffixFilter = FileFilterUtils.suffixFileFilter(".txt");// 创建.txt过滤器

IOFileFilter txtFiles = FileFilterUtils.andFileFilter(FileFileFilter.FILE, txtSuffixFilter);

// 创建包含目录或者txt文件的过滤器

FileFilter filter = FileFilterUtils.orFileFilter(DirectoryFileFilter.DIRECTORY, txtFiles);

// Copy using the filter

FileUtils.copyDirectory(srcDir, destDir, filter);//TODO 阅读doCopyDirectory源码

//文件拷贝

FileUtils.copyInputStreamToFile(new FileInputStream("/test"),new File("/test"));

FileUtils.copyURLToFile(new URL("file:/test"),new File("/test"));

//删除文件

FileUtils.deleteDirectory(new File("/test"));//删除目录下所有的内容

FileUtils.deleteQuietly(new File("/test"));//如果是目录,会级联删除;不会抛出异常

//判断文件是否存在

FileUtils.directoryContains(new File("/dir"),new File("/file"));

//清除目录中的内容,不会删除该目录;

//先verifiedListFiles检查目录,检查目录是否为目录、是否存在,然后调用listFiles,如果返回null,则抛出异常

//遍历目录中的文件,如果是目录则递归删除;如果是文件则强制删除,删除失败(文件不存在或无法删除)都会抛出异常

FileUtils.cleanDirectory(new File("/dir"));//TODO verifiedListFiles

//等待一个文件xx秒,知道文件创建后才返回。每max(100,remainning)循环检查一次

while(FileUtils.waitFor(new File("/dir"),60)){}

//读取目标文件,内部调用IOUtils.toString(inputstream,"utf-8")

String str = FileUtils.readFileToString(new File("/dir"),"utf-8");

//内部调用IOUtils.toByteArray(in)

byte[] bytes = FileUtils.readFileToByteArray(new File("/dir"));

//内部调用IOUtils.readLines(in, Charsets.toCharset(encoding));

List strs = FileUtils.readLines(new File("/dir"),"utf-8");

//内部调用IOUtils.lineIterator(in, encoding)

FileUtils.lineIterator(new File("/dir"),"utf-8");

//四个参数分别为:目标文件,写入的字符串,字符集,是否追加

FileUtils.writeStringToFile(new File("/target"),"string","utf-8",true);

//write可以接受charsequence类型的数据,string,stringbuilder和stringbuffer都是实现了charsequence接口

FileUtils.write(new File("/target"),"target char sequence","utf-8",true);

FileUtils.writeByteArrayToFile(new File("/target"),"bytes".getBytes());//(file,字符数组)

FileUtils.writeByteArrayToFile(new File("/target"),"bytes".getBytes(),true);//(file,字符数组,是否追加)

FileUtils.writeByteArrayToFile(new File("/target"),"bytes".getBytes(),0,10);//(file,字符数组,起始位置,结束位置)

FileUtils.writeByteArrayToFile(new File("/target"),"bytes".getBytes(),0,10,true);//(file,字符数组,起始位置,结束位置,是否追加)

//writeLines多了一个lineEnding参数

FileUtils.writeLines(new File("/target"),"utf-8", FileUtils.readLines(new File("/target"),"utf-8"));

//强制删除

FileUtils.forceDelete(new File("/target"));

//在JVM

FileUtils.forceDeleteOnExit(new File("/target"));

//强制创建文件目录,如果文件存在,会抛出异常

FileUtils.forceMkdir(new File("/target"));

//强制创建父级目录

FileUtils.forceMkdirParent(new File("/xxxx/target"));

//如果是文件,直接读取文件大小;如果是目录,级联计算文件下的所有文件大小

FileUtils.sizeOf(new File("/target"));//返回Long

FileUtils.sizeOfAsBigInteger(new File("/target"));//返回BigInteger

FileUtils.sizeOfDirectory(new File("/target"));

FileUtils.sizeOfDirectoryAsBigInteger(new File("/target"));

//对比文件新旧

FileUtils.isFileNewer(new File("/target"),new File("/file"));

FileUtils.isFileOlder(new File("/target"), new Date());

FileUtils.checksum(new File("/target"),new CRC32());

FileUtils.checksumCRC32(new File("/target"));

FileUtils.moveDirectory(new File("/target"),new File("/file"));

FileUtils.moveDirectoryToDirectory(new File("/target"),new File("/file"),true);

FileUtils.moveFile(new File("/target"),new File("/file"));

FileUtils.moveFileToDirectory(new File("/target"),new File("/dir"),true);

FileUtils.moveToDirectory(new File("/target"),new File("/dir"),true);

FileUtils.isSymlink(new File("/target"));

}

@Test

public void findFiles(){

//返回文件的列表

List files = (List) FileUtils.listFiles(parent,new String[]{"test1","test2"},true);//TODO 重点看一下源码

//返回文件迭代器

Iterator files_iter = FileUtils.iterateFiles(parent,new String[]{"test1","test3"},true);

//把collection转换成File[]

FileUtils.convertFileCollectionToFileArray(files);

}

}


文章分类
代码人生
版权声明:本站是系统测试站点,无实际运营。本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 XXXXXXo@163.com 举报,一经查实,本站将立刻删除。
相关推荐