关于FileUtils

利用 org.apache.commons.io.FileUtils快速读写文件



利用 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源代码等.

普通地读取一个网页的源代码的代码可能如下

1.
InputStream in = new URL( "http://laoyu.info" ).openStream();

2.
try {

3.
   InputStreamReader inR = new InputStreamReader( in );

4.
   BufferedReader buf = new BufferedReader( inR );

5.
   String line;

6.
   while ( ( line = buf.readLine() ) != null ) {

7.
     System.out.println( line );

8.
   }

9.
} finally {

10.
   in.close();

11.
}


使用了Commons IO,则可以大大简化代码.如下:

1.
InputStream in = new URL( "http://laoyu.info" ).openStream();

2.
try {

3.
   System.out.println( IOUtils.toString( in ) );

4.
} finally {

5.
   IOUtils.closeQuietly(in);

6.
}


Commons IO里的常用类

FileUtils包含了文件操作的相关方法.
下面的代码用于读取磁盘上的某个文件:

1.
File file = new File("c:/test.txt");

2.
List lines = FileUtils.readLines(file, "UTF-8");


FileSystemUtils 可以获得指定磁盘路径的可用空间

1.
long freeSpace = FileSystemUtils.freeSpace("d:/");


文件复制代码:

1.
File src = new File("src.txt");

2.
File dest = new File("dest.txt");

3.
FileUtils.copyFile(src, dest);


补充:
方便地下载文 件到本地

1.
InputStream in = new

2.
URL("http://www.baidu.com/img/baidu_logo.gif").openStream();

3.
  byte [] gif = IOUtils.toByteArray(in);

4.
  //IOUtils.write(gif,new FileOutputStream(new File("c:/test.gif")));

5.
  FileUtils.writeByteArrayToFile(new File("c:/test.gif"),gif);

6.
  IOUtils.closeQuietly(in);






分享 commons io 工具类 代码:http://www.javaeye.com/topic/575996

输入流复制到 输出流



Java代码
1.public class IoTest { 
2. 
3.    /**
4.     * @param args
5.     */ 
6.    public static void main(String[] args) throws Exception { 
7.        // TODO Auto-generated method stub 
8.        Writer write = new FileWriter("c:\\kk.dat"); 
9. 
10.        InputStream ins = new FileInputStream(new File("c:\\text.txt")); 
11. 
12.        IOUtils.copy(ins, write); 
13.        write.close(); 
14. 
15.        ins.close(); 
16.    } 
17. 
18.} 



文本写入指定文件



Java代码
1.public class FileWirterTest { 
2. 
3.    /**
4.     * @param args
5.     */ 
6.    public static void main(String[] args) throws Exception{ 
7.        // TODO Auto-generated method stub 
8.         
9.        String name = "my name is panxiuyan"; 
10.         
11.        File file =  new File("c:\\name.txt"); 
12.         
13.        FileUtils.writeStringToFile(file, name); 
14. 
15.    } 
16. 
17.} 




将输入流转换成文本



Java代码
1.public class URLIoTest { 
2. 
3.    /**
4.     * @param args
5.     */ 
6.    public static void main(String[] args) throws Exception { 
7.        // TODO Auto-generated method stub 
8.        URL url = new URL("http://www.dimurmill.com"); 
9.         
10.        InputStream ins = url.openStream(); 
11.         
12.        String contents = IOUtils.toString(ins,"UTF-8"); 
13.        System.out.println( "Slashdot: " + contents ); 
14. 
15. 
16.    } 
17. 
18.} 



关闭相关流



Java代码
1.public class IoCloseTest { 
2. 
3.    /**
4.     * @param args
5.     */ 
6.    public static void main(String[] args) { 
7.        // TODO Auto-generated method stub 
8.         
9.        File file = null; 
10.         
11.        InputStream ins = null; 
12.        try{ 
13.            file = new File("C:\\Test.java"); 
14.             
15.            ins = new FileInputStream(file); 
16.        }catch(Exception e){ 
17.            e.printStackTrace(); 
18.        }finally{ 
19.            IOUtils.closeQuietly(ins); 
20.        } 
21. 
22.    } 
23. 
24.} 




文件复制



Java代码
1.public class FileCopyTest { 
2. 
3.    /**
4.     * @param args
5.     */ 
6.    public static void main(String[] args) throws Exception{ 
7.        // TODO Auto-generated method stub 
8.         
9.        File srcfile = new File("c:\\Test.java"); 
10.         
11.        File destfile = new File("c:\\Test.java.bak"); 
12.         
13.         
14.        FileUtils.copyFile(srcfile, destfile); 
15. 
16.    } 
17. 
18.} 



文件复制指定的目录



Java代码
1.public class FileCopyTest { 
2. 
3.    /**
4.     * @param args
5.     */ 
6.    public static void main(String[] args) throws Exception{ 
7.        // TODO Auto-generated method stub 
8.         
9.        File srcfile = new File("c:\\Test.java"); 
10.         
11.        File destDir = new File("D:\\"); 
12.         
13.         
14.        FileUtils.copyFileToDirectory(srcfile, destDir); 
15. 
16.    } 
17. 
18.} 



网络流保存为文件



Java代码
1.public class URLToFileTest { 
2. 
3.    /**
4.     * @param args
5.     */ 
6.    public static void main(String[] args) throws Exception{ 
7.        // TODO Auto-generated method stub 
8.         
9.        URL url = new URL("http://www.163.com"); 
10.         
11.        File file = new File("c:\\163.html"); 
12.         
13.        FileUtils.copyURLToFile(url, file); 
14. 
15.    } 
16. 
17.} 




文件目录操作



Java代码
1.public class DirOper { 
2. 
3.    /**
4.     * @param args
5.     */ 
6.    public static void main(String[] args) throws Exception { 
7.        // TODO Auto-generated method stub 
8. 
9.        File dir = new File("c:\\test"); 
10. 
11.        FileUtils.cleanDirectory(dir);//清空目录下的文件 
12. 
13.        FileUtils.deleteDirectory(dir);//删除目录和目录下的文件 
14. 
15.    } 
16. 
17.} 




目录大小



Java代码
1.long size = FileUtils.sizeOfDirectory(dir); 




目录操作



Java代码
1.File testFile = new File( "testFile.txt" ); 
2. 
3.     //如果不存在,新建 
4. 
5.    // 如果存在,修改文件修改时间 
6. 
7.    FileUtils.touch( testFile ); 
8.  




记录流的读取写入字节数



Java代码
1.File test = new File( "test.dat" ); 
2. 
3.//输出流的统计 
4.CountingOutputStream countStream = null; 
5. 
6.//输入流的统计 
7.//CountingInputStream countStream = null; 
8. 
9. 
10. 
11. 
12.try { 
13. 
14.    FileOutputStream fos = new FileOutputStream( test ); 
15. 
16.    countStream = new CountingOutputStream( fos ); 
17. 
18.    countStream.write( "Hello".getBytes( ) ); 
19. 
20.} catch( IOException ioe ) { 
21. 
22.    System.out.println( "Error writing bytes to file." ); 
23. 
24.} finally { 
25. 
26.    IOUtils.closeQuietly( countStream ); 
27. 
28.} 
29. 
30. 
31. 
32.if( countStream != null ) { 
33. 
34.    int bytesWritten = countStream.getCount( ); 
35. 
36.    System.out.println( "Wrote " + bytesWritten + " bytes to test.dat" ); 
37. 
38.} 




相同的内容写入不同的文本



Java代码
1.File test1 = new File("split1.txt"); 
2. 
3.File test2 = new File("split2.txt"); 
4. 
5.OutputStream outStream = null; 
6. 
7.         
8. 
9.try { 
10. 
11.    FileOutputStream fos1 = new FileOutputStream( test1 ); 
12. 
13.    FileOutputStream fos2 = new FileOutputStream( test2 ); 
14. 
15.    //包含不同的文本 
16.    outStream = new TeeOutputStream( fos1, fos2 ); 
17. 
18.             
19. 
20.    outStream.write( "One Two Three, Test".getBytes( ) ); 
21. 
22.    outStream.flush( ); 
23. 
24.} catch( IOException ioe ) { 
25. 
26.    System.out.println( "Error writing to split output stream" ); 
27. 
28.} finally { 
29. 
30.    IOUtils.closeQuietly( outStream ); 
31. 
32.} 

你可能感兴趣的:(java,上传,文件)