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 工具類 代碼
輸入流複製到 輸出流
- 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();
- }
- }
文本寫入指定文件
- 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);
- }
- }
將輸入流轉換成文本
- 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 );
- }
- }
關閉相關流
- 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);
- }
- }
- }
文件複製
- 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);
- }
- }
文件複製指定的目錄
- 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);
- }
- }
網絡流保存爲文件
- 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);
- }
- }
文件目錄操作
- 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);//刪除目錄和目錄下的文件
- }
- }
目錄大小
- long size = FileUtils.sizeOfDirectory(dir);
目錄操作
- File testFile = new File( "testFile.txt" );
- //如果不存在,新建
- // 如果存在,修改文件修改時間
- FileUtils.touch( testFile );
記錄流的讀取寫入字節數
- 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" );
- }
相同的內容寫入不同的文本
- 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 );
- }
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));
}
}