org.apache.commons.io.FileUtils学习
利用org.apache.commons.io.FileUtils快速读写文件http://php.11519.net/5jblog/?p=475
API:http://commons.apache.org/io/api-release/org/apache/commons/io/FileUtils.html
String fileName = "C://11.txt";
File file = new File(fileName);
String fileContent = "";
try {
fileContent = org.apache.commons.io.FileUtils.readFileToString(file, "GBK");
} catch (IOException e) {
e.printStackTrace();
}
fileContent +="Helloworld";
try {
org.apache.commons.io.FileUtils.writeStringToFile(file, fileContent, "GBK");
} catch (IOException e) {
e.printStackTrace();
}
其他参考
CommonsIO方便读写文件的工具类:http://laoyu.info/archives/282.html
Commons IO是apache的一个开源的工具包,封装了IO操作的相关类,使用Commons IO可以很方便的读写文件,url源代码等.
普通地读取一个网页的源代码的代码可能如下
[*]InputStreamin =newURL("http://laoyu.info").openStream();
[*]try{
[*] InputStreamReaderinR =newInputStreamReader(in);
[*] BufferedReaderbuf =newBufferedReader(inR);
[*] Stringline;
[*] while((line= buf.readLine())!=null){
[*]System.out.println(line);
[*] }
[*]}finally{
[*] in.close();
[*]}
使用了Commons IO,则可以大大简化代码.如下:
[*]InputStreamin =newURL("http://laoyu.info").openStream();
[*]try{
[*] System.out.println(IOUtils.toString(in));
[*]}finally{
[*] IOUtils.closeQuietly(in);
[*]}
Commons IO里的常用类
FileUtils包含了文件操作的相关方法.
下面的代码用于读取磁盘上的某个文件:
[*]Filefile =newFile("c:/test.txt");
[*]Listlines = FileUtils.readLines(file,"UTF-8");
FileSystemUtils 可以获得指定磁盘路径的可用空间
[*]longfreeSpace = FileSystemUtils.freeSpace("d:/");
文件复制代码:
[*]Filesrc =newFile("src.txt");
[*]Filedest =newFile("dest.txt");
[*]FileUtils.copyFile(src, dest);
补充:
方便地下载文件到本地
[*]InputStreamin =new
[*]URL("http://www.baidu.com/img/baidu_logo.gif").openStream();
[*]byte[]gif= IOUtils.toByteArray(in);
[*]//IOUtils.write(gif,new FileOutputStream(new File("c:/test.gif")));
[*] FileUtils.writeByteArrayToFile(newFile("c:/test.gif"),gif);
[*] IOUtils.closeQuietly(in);
分享 commons io 工具类 代码:http://www.javaeye.com/topic/575996
输入流复制到输出流
Java代码
[*]publicclassIoTest{
[*]
[*]/**
[*]*@paramargs
[*]*/
[*]publicstaticvoidmain(String[]args)throwsException{
[*]//TODOAuto-generatedmethodstub
[*]Writerwrite=newFileWriter("c:\\kk.dat");
[*]
[*]InputStreamins=newFileInputStream(newFile("c:\\text.txt"));
[*]
[*]IOUtils.copy(ins,write);
[*]write.close();
[*]
[*]ins.close();
[*]}
[*]
[*]}
文本写入指定文件
Java代码
[*]publicclassFileWirterTest{
[*]
[*]/**
[*]*@paramargs
[*]*/
[*]publicstaticvoidmain(String[]args)throwsException{
[*]//TODOAuto-generatedmethodstub
[*]
[*]Stringname="mynameispanxiuyan";
[*]
[*]Filefile=newFile("c:\\name.txt");
[*]
[*]FileUtils.writeStringToFile(file,name);
[*]
[*]}
[*]
[*]}
将输入流转换成文本
Java代码
[*]publicclassURLIoTest{
[*]
[*]/**
[*]*@paramargs
[*]*/
[*]publicstaticvoidmain(String[]args)throwsException{
[*]//TODOAuto-generatedmethodstub
[*]URLurl=newURL("http://www.dimurmill.com");
[*]
[*]InputStreamins=url.openStream();
[*]
[*]Stringcontents=IOUtils.toString(ins,"UTF-8");
[*]System.out.println("Slashdot:"+contents);
[*]
[*]
[*]}
[*]
[*]}
关闭相关流
Java代码
[*]publicclassIoCloseTest{
[*]
[*]/**
[*]*@paramargs
[*]*/
[*]publicstaticvoidmain(String[]args){
[*]//TODOAuto-generatedmethodstub
[*]
[*]Filefile=null;
[*]
[*]InputStreamins=null;
[*]try{
[*]file=newFile("C:\\Test.java");
[*]
[*]ins=newFileInputStream(file);
[*]}catch(Exceptione){
[*]e.printStackTrace();
[*]}finally{
[*]IOUtils.closeQuietly(ins);
[*]}
[*]
[*]}
[*]
[*]}
文件复制
Java代码
[*]publicclassFileCopyTest{
[*]
[*]/**
[*]*@paramargs
[*]*/
[*]publicstaticvoidmain(String[]args)throwsException{
[*]//TODOAuto-generatedmethodstub
[*]
[*]Filesrcfile=newFile("c:\\Test.java");
[*]
[*]Filedestfile=newFile("c:\\Test.java.bak");
[*]
[*]
[*]FileUtils.copyFile(srcfile,destfile);
[*]
[*]}
[*]
[*]}
文件复制指定的目录
Java代码
[*]publicclassFileCopyTest{
[*]
[*]/**
[*]*@paramargs
[*]*/
[*]publicstaticvoidmain(String[]args)throwsException{
[*]//TODOAuto-generatedmethodstub
[*]
[*]Filesrcfile=newFile("c:\\Test.java");
[*]
[*]FiledestDir=newFile("D:\\");
[*]
[*]
[*]FileUtils.copyFileToDirectory(srcfile,destDir);
[*]
[*]}
[*]
[*]}
网络流保存为文件
Java代码
[*]publicclassURLToFileTest{
[*]
[*]/**
[*]*@paramargs
[*]*/
[*]publicstaticvoidmain(String[]args)throwsException{
[*]//TODOAuto-generatedmethodstub
[*]
[*]URLurl=newURL("http://www.163.com");
[*]
[*]Filefile=newFile("c:\\163.html");
[*]
[*]FileUtils.copyURLToFile(url,file);
[*]
[*]}
[*]
[*]}
文件目录操作
Java代码
[*]publicclassDirOper{
[*]
[*]/**
[*]*@paramargs
[*]*/
[*]publicstaticvoidmain(String[]args)throwsException{
[*]//TODOAuto-generatedmethodstub
[*]
[*]Filedir=newFile("c:\\test");
[*]
[*]FileUtils.cleanDirectory(dir);//清空目录下的文件
[*]
[*]FileUtils.deleteDirectory(dir);//删除目录和目录下的文件
[*]
[*]}
[*]
[*]}
目录大小
Java代码
[*]longsize=FileUtils.sizeOfDirectory(dir);
目录操作
Java代码
[*]FiletestFile=newFile("testFile.txt");
[*]
[*]//如果不存在,新建
[*]
[*]//如果存在,修改文件修改时间
[*]
[*]FileUtils.touch(testFile);
[*]
记录流的读取写入字节数
Java代码
[*]Filetest=newFile("test.dat");
[*]
[*]//输出流的统计
[*]CountingOutputStreamcountStream=null;
[*]
[*]//输入流的统计
[*]//CountingInputStreamcountStream=null;
[*]
[*]
[*]
[*]
[*]try{
[*]
[*]FileOutputStreamfos=newFileOutputStream(test);
[*]
[*]countStream=newCountingOutputStream(fos);
[*]
[*]countStream.write("Hello".getBytes());
[*]
[*]}catch(IOExceptionioe){
[*]
[*]System.out.println("Errorwritingbytestofile.");
[*]
[*]}finally{
[*]
[*]IOUtils.closeQuietly(countStream);
[*]
[*]}
[*]
[*]
[*]
[*]if(countStream!=null){
[*]
[*]intbytesWritten=countStream.getCount();
[*]
[*]System.out.println("Wrote"+bytesWritten+"bytestotest.dat");
[*]
[*]}
相同的内容写入不同的文本
Java代码
[*]Filetest1=newFile("split1.txt");
[*]
[*]Filetest2=newFile("split2.txt");
[*]
[*]OutputStreamoutStream=null;
[*]
[*]
[*]
[*]try{
[*]
[*]FileOutputStreamfos1=newFileOutputStream(test1);
[*]
[*]FileOutputStreamfos2=newFileOutputStream(test2);
[*]
[*]//包含不同的文本
[*]outStream=newTeeOutputStream(fos1,fos2);
[*]
[*]
[*]
[*]outStream.write("OneTwoThree,Test".getBytes());
[*]
[*]outStream.flush();
[*]
[*]}catch(IOExceptionioe){
[*]
[*]System.out.println("Errorwritingtosplitoutputstream");
[*]
[*]}finally{
[*]
[*]IOUtils.closeQuietly(outStream);
[*]
[*]}
转自:http://www.cnblogs.com/hellofei/archive/2010/04/10/1707131.html
页:
[1]