org.apache.commons.io.FileUtils快速读写文件
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方便读写文件的工具类:
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 工具类 代码
输入流复制到 输出流
Java代码 public class IoTest { /** * @param args */ public static void main(String[] args) throws Exception { // TODO Auto-generated method stub Writer write = new FileWriter("c:\\kk.dat"); InputStream ins = new FileInputStream(new File("c:\\text.txt")); IOUtils.copy(ins, write); write.close(); ins.close(); } }文本写入指定文件
Java代码 public class FileWirterTest { /** * @param args */ public static void main(String[] args) throws Exception{ // TODO Auto-generated method stub String name = "my name is panxiuyan"; File file = new File("c:\\name.txt"); FileUtils.writeStringToFile(file, name); } }将输入流转换成文本
Java代码 public class URLIoTest { /** * @param args */ public static void main(String[] args) throws Exception { // TODO Auto-generated method stub URL url = new URL("http://www.dimurmill.com"); InputStream ins = url.openStream(); String contents = IOUtils.toString(ins,"UTF-8"); System.out.println( "Slashdot: " + contents ); } }关闭相关流
Java代码 public class IoCloseTest { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub 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); } } }文件复制
Java代码 public class FileCopyTest { /** * @param args */ public static void main(String[] args) throws Exception{ // TODO Auto-generated method stub File srcfile = new File("c:\\Test.java"); File destfile = new File("c:\\Test.java.bak"); FileUtils.copyFile(srcfile, destfile); } }文件复制指定的目录
Java代码 public class FileCopyTest { /** * @param args */ public static void main(String[] args) throws Exception{ // TODO Auto-generated method stub File srcfile = new File("c:\\Test.java"); File destDir = new File("D:\\"); FileUtils.copyFileToDirectory(srcfile, destDir); } }网络流保存为文件
Java代码 public class URLToFileTest { /** * @param args */ public static void main(String[] args) throws Exception{ // TODO Auto-generated method stub URL url = new URL("http://www.163.com"); File file = new File("c:\\163.html"); FileUtils.copyURLToFile(url, file); } }文件目录操作
Java代码 public class DirOper { /** * @param args */ public static void main(String[] args) throws Exception { // TODO Auto-generated method stub File dir = new File("c:\\test"); FileUtils.cleanDirectory(dir);//清空目录下的文件 FileUtils.deleteDirectory(dir);//删除目录和目录下的文件 } }目录大小
Java代码 long size = FileUtils.sizeOfDirectory(dir);目录操作
Java代码 File testFile = new File( "testFile.txt" ); //如果不存在,新建 // 如果存在,修改文件修改时间 FileUtils.touch( testFile );记录流的读取写入字节数
Java代码 File test = new File( "test.dat" ); //输出流的统计 CountingOutputStream countStream = null; //输入流的统计 //CountingInputStream 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" ); }相同的内容写入不同的文本
Java代码 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 ); } 1.文件内容拷贝: import java.io.File; import java.io.FileWriter; import java.io.IOException; import java.io.InputStream; import java.io.Writer; import org.apache.commons.io.FileUtils; import org.apache.commons.io.IOUtils; publicclass FileCopyExample { publicstaticvoid main(String[] args) { try { File src = new File( "test.dat" ); File dest = new File( "test.dat.bak" ); FileUtils.copyFile( src, dest ); } catch( IOException ioe ) { System.out.println( "Problem copying file." ); } try { File src = new File( "test.dat" ); File dir = new File( "./temp" ); FileUtils.copyFileToDirectory( src, dir ); } catch( IOException ioe ) { System.out.println( "Problem copying file to dir."); } try { String string = "Blah blah blah"; File dest = new File( "test.tmp" ); FileUtils.writeStringToFile( dest, string, "ISO-8859-1" ); } catch( IOException ioe ) { System.out.println( "Error writing out a String." ); } try { Writer writer = new FileWriter( "test.dat" ); InputStream inputStream =FileCopyExample.class. getClass().getResourceAsStream("/io/web.xml"); IOUtils.copy( inputStream, writer ); writer.close(); inputStream.close(); } catch (IOException e) { System.out.println( "Error copying data" ); } try { File src = new File( "test.txt" ); OutputStream output = new FileOutputStream(src); InputStream inputStream =FileCopyExample.class. getClass().getResourceAsStream("/io/web.xml"); IOUtils.copy( inputStream, output ); // writer.close(); inputStream.close(); output.close(); } catch (IOException e) { System.out.println( "Error copying data" ); } } } 2.文件删除: File file = new File( ("io/project.properties") ); String display = FileUtils.byteCountToDisplaySize( file.length() ); System.out.println( "project.xml is " + display ); FileUtils.forceDelete(file) 3.读取取文本中的每一行: import java.io.File; import java.io.IOException; import java.util.List; import org.apache.commons.io.FileSystemUtils; import org.apache.commons.io.FileUtils; public class Test { /** * @param args * @throws IOException */ public static void main(String[] args) throws IOException { // TODO Auto-generated method stub File file = new File((Test.class.getClass().getResource("/io/web.xml")).getFile()); List lines = FileUtils.readLines(file, "UTF-8"); for(int i=0;i<lines.size();i++) System.out.println(lines.get(i)); } }