利用 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
输入流复制到输出流
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 );
}
利用 org.apache.commons.io.FileUtils快速读写文件(转)
猜你喜欢
转载自shixm.iteye.com/blog/1718297
今日推荐
周排行