利用org.apache.commons.io.FileUtils快速读写文件
http://php.11519.net/5jblog/?p=475
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();
}
其他参考
Commons IO方便读写文件的工具类:http://laoyu.info/archives/282.html
Commons IO是apache的一个开源的工具包,封装了IO操作的相关类,使用Commons IO可以很方便的读写文件,url源代码等.
普通地读取一个网页的源代码的代码可能如下
-
InputStream
in =
new
URL
(
"http://laoyu.info"
).
openStream
(
)
;
-
try
{
-
InputStreamReader
inR =
new
InputStreamReader
(
in
)
;
-
BufferedReader
buf =
new
BufferedReader
(
inR
)
;
-
String
line
;
-
while
(
(
line = buf.
readLine
(
)
)
!=
null
)
{
-
System.
out.
println
(
line
)
;
-
}
-
}
finally
{
-
in.
close
(
)
;
-
}
使用了Commons IO,则可以大大简化代码.如下:
-
InputStream
in =
new
URL
(
"http://laoyu.info"
).
openStream
(
)
;
-
try
{
-
System.
out.
println
(
IOUtils.
toString
(
in
)
)
;
-
}
finally
{
-
IOUtils.
closeQuietly
(in
)
;
-
}
Commons IO里的常用类
FileUtils包含了文件操作的相关方法.
下面的代码用于读取磁盘上的某个文件:
-
File
file =
new
File
(
"c:/test.txt"
)
;
-
List
lines = FileUtils.
readLines
(file,
"UTF-8"
)
;
FileSystemUtils 可以获得指定磁盘路径的可用空间
-
long
freeSpace = FileSystemUtils.
freeSpace
(
"d:/"
)
;
文件复制代码:
-
File
src =
new
File
(
"src.txt"
)
;
-
File
dest =
new
File
(
"dest.txt"
)
;
-
FileUtils.
copyFile
(src, dest
)
;
补充:
方便地下载文件到本地
-
InputStream
in =
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
(
new
File
(
"c:/test.gif"
),gif
)
;
-
IOUtils.
closeQuietly
(in
)
;
分享 commons io 工具类 代码:http://www.javaeye.com/topic/575996
输入流复制到输出流
- publicclassIoTest{
-
-
-
-
- publicstaticvoidmain(String[]args)throwsException{
-
- Writerwrite=newFileWriter("c://kk.dat");
-
- InputStreamins=newFileInputStream(newFile("c://text.txt"));
-
- IOUtils.copy(ins,write);
- write.close();
-
- ins.close();
- }
-
- }
文本写入指定文件
- publicclassFileWirterTest{
-
-
-
-
- publicstaticvoidmain(String[]args)throwsException{
-
-
- Stringname="mynameispanxiuyan";
-
- Filefile=newFile("c://name.txt");
-
- FileUtils.writeStringToFile(file,name);
-
- }
-
- }
将输入流转换成文本
- publicclassURLIoTest{
-
-
-
-
- publicstaticvoidmain(String[]args)throwsException{
-
- URLurl=newURL("http://www.dimurmill.com");
-
- InputStreamins=url.openStream();
-
- Stringcontents=IOUtils.toString(ins,"UTF-8");
- System.out.println("Slashdot:"+contents);
-
-
- }
-
- }
关闭相关流
- publicclassIoCloseTest{
-
-
-
-
- publicstaticvoidmain(String[]args){
-
-
- Filefile=null;
-
- InputStreamins=null;
- try{
- file=newFile("C://Test.java");
-
- ins=newFileInputStream(file);
- }catch(Exceptione){
- e.printStackTrace();
- }finally{
- IOUtils.closeQuietly(ins);
- }
-
- }
-
- }
文件复制
- publicclassFileCopyTest{
-
-
-
-
- publicstaticvoidmain(String[]args)throwsException{
-
-
- Filesrcfile=newFile("c://Test.java");
-
- Filedestfile=newFile("c://Test.java.bak");
-
-
- FileUtils.copyFile(srcfile,destfile);
-
- }
-
- }
文件复制指定的目录
- publicclassFileCopyTest{
-
-
-
-
- publicstaticvoidmain(String[]args)throwsException{
-
-
- Filesrcfile=newFile("c://Test.java");
-
- FiledestDir=newFile("D://");
-
-
- FileUtils.copyFileToDirectory(srcfile,destDir);
-
- }
-
- }
网络流保存为文件
- publicclassURLToFileTest{
-
-
-
-
- publicstaticvoidmain(String[]args)throwsException{
-
-
- URLurl=newURL("http://www.163.com");
-
- Filefile=newFile("c://163.html");
-
- FileUtils.copyURLToFile(url,file);
-
- }
-
- }
文件目录操作
- publicclassDirOper{
-
-
-
-
- publicstaticvoidmain(String[]args)throwsException{
-
-
- Filedir=newFile("c://test");
-
- FileUtils.cleanDirectory(dir);
-
- FileUtils.deleteDirectory(dir);
-
- }
-
- }
目录大小
- longsize=FileUtils.sizeOfDirectory(dir);
目录操作
- FiletestFile=newFile("testFile.txt");
-
-
-
-
-
- FileUtils.touch(testFile);
记录流的读取写入字节数
- Filetest=newFile("test.dat");
-
-
- CountingOutputStreamcountStream=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");
-
- }
相同的内容写入不同的文本
- 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);
-
- }
人类的历史,就是一个不断地从必然王国向自由王国发展的历史。——