|
利用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 |
|