利用
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
输入流复制到
输出流
- public class IoTest {
-
-
-
-
- public static void main(String[] args) throws Exception {
-
- Writer write = new FileWriter("c:\\kk.dat");
-
- InputStream ins = new FileInputStream(new File("c:\\text.txt"));
-
- IOUtils.copy(ins, write);
- write.close();
-
- ins.close();
- }
-
- }
文本写入指定文件
- public class FileWirterTest {
-
-
-
-
- public static void main(String[] args) throws Exception{
-
-
- String name = "my name is panxiuyan";
-
- File file = new File("c:\\name.txt");
-
- FileUtils.writeStringToFile(file, name);
-
- }
-
- }
将输入流转换成文本
- public class URLIoTest {
-
-
-
-
- public static void main(String[] args) throws Exception {
-
- URL url = new URL("http://www.dimurmill.com");
-
- InputStream ins = url.openStream();
-
- String contents = IOUtils.toString(ins,"UTF-8");
- System.out.println( "Slashdot: " + contents );
-
-
- }
-
- }
关闭相关流
- public class IoCloseTest {
-
-
-
-
- public static void main(String[] args) {
-
-
- File file = null;
-
- InputStream ins = null;
- try{
- file = new File("C:\\Test.java");
-
- ins = new FileInputStream(file);
- }catch(Exception e){
- e.printStackTrace();
- }finally{
- IOUtils.closeQuietly(ins);
- }
-
- }
-
- }
文件复制
- public class FileCopyTest {
-
-
-
-
- public static void main(String[] args) throws Exception{
-
-
- File srcfile = new File("c:\\Test.java");
-
- File destfile = new File("c:\\Test.java.bak");
-
-
- FileUtils.copyFile(srcfile, destfile);
-
- }
-
- }
文件复制指定的目录
- public class FileCopyTest {
-
-
-
-
- public static void main(String[] args) throws Exception{
-
-
- File srcfile = new File("c:\\Test.java");
-
- File destDir = new File("D:\\");
-
-
- FileUtils.copyFileToDirectory(srcfile, destDir);
-
- }
-
- }
网络流保存为文件
- public class URLToFileTest {
-
-
-
-
- public static void main(String[] args) throws Exception{
-
-
- URL url = new URL("http://www.163.com");
-
- File file = new File("c:\\163.html");
-
- FileUtils.copyURLToFile(url, file);
-
- }
-
- }
文件目录操作
- public class DirOper {
-
-
-
-
- public static void main(String[] args) throws Exception {
-
-
- File dir = new File("c:\\test");
-
- FileUtils.cleanDirectory(dir);
-
- FileUtils.deleteDirectory(dir);
-
- }
-
- }
目录大小
- long size = FileUtils.sizeOfDirectory(dir);
目录操作
- File testFile = new File( "testFile.txt" );
-
-
-
-
-
- FileUtils.touch( testFile );
-
记录流的读取写入字节数
- File test = new File( "test.dat" );
-
-
- CountingOutputStream countStream = null;
-
-
-
-
-
-
-
- try {
-
- FileOutputStream fos = new FileOutputStream( test );
-
- countStream = new CountingOutputStream( fos );
-
- countStream.write( "Hello".getBytes( ) );
-
- } catch( IOException ioe ) {
-
- System.out.println( "Error writing bytes to file." );
-
- } finally {
-
- IOUtils.closeQuietly( countStream );
-
- }
-
-
-
- if( countStream != null ) {
-
- int bytesWritten = countStream.getCount( );
-
- System.out.println( "Wrote " + bytesWritten + " bytes to test.dat" );
-
- }
相同的内容写入不同的文本
- File test1 = new File("split1.txt");
-
- File test2 = new File("split2.txt");
-
- OutputStream outStream = null;
-
-
-
- try {
-
- FileOutputStream fos1 = new FileOutputStream( test1 );
-
- FileOutputStream fos2 = new FileOutputStream( test2 );
-
-
- outStream = new TeeOutputStream( fos1, fos2 );
-
-
-
- outStream.write( "One Two Three, Test".getBytes( ) );
-
- outStream.flush( );
-
- } catch( IOException ioe ) {
-
- System.out.println( "Error writing to split output stream" );
-
- } finally {
-
- IOUtils.closeQuietly( outStream );
-
- }