JDK:java读文件的一点见解

王朝java/jsp·作者佚名  2008-05-31
窄屏简体版  字體: |||超大  

做开发的经常碰到文件的操作,非凡是文件的“读”操作。在Java中,读文件有很多种方法,有FileReader、BufferReader等,当然,各种方法的效率是不一样的,FileReader经BufferReader包装后效率明显提高,在个别时候,我们可以用java.nio包进行文件操作,如下:

private static String fileReader(File fileName) {

String fileContent = null;

FileInputStream fis = null;

FileChannel fc = null;

try {

fis = new FileInputStream(fileName);

// get a file channel

fc = fis.getChannel();

// create a ByteBuffer that is large enough

// and read the contents of the file into it

// test

// System.out.println(fc.size());

ByteBuffer bb = ByteBuffer.allocate((int) fc.size() + 1);

fc.read(bb);

bb.flip();

// save the content of the file as a String

// if we want to change the encode

// we can directly add a second parameter here

// which is of course more efficent

// System.out.println(bb.capacity());

fileContent = new String(bb.array());

} catch (Exception e) {

e.printStackTrace();

} finally {

// release the FileChannel

try {

fc.close();

} catch (Exception ex) {

}

try {

fis.close();

} catch (Exception ex) {

}

}

// write out the contents of this file

return fileContent;

}

使用这种方法有个致命的弱点,当所读文件较大时,将消耗大量内存,甚至发生OutOfMemory Error,而当文件较小时,使用该方法的效率就明显高得多。

另外,欢迎大家到我的blog,更多经典文章等你来看http://blog.csdn.net/hdy007/

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航