WEB开发网
开发学院WEB开发Jsp JDK:java读文件的一点见解 阅读

JDK:java读文件的一点见解

 2008-01-05 08:28:08 来源:WEB开发网   
核心提示: 做开发的经常碰到文件的操作,非凡是文件的“读”操作,JDK:java读文件的一点见解,在java中,读文件有很多种方法,使用该方法的效率就明显高得多,另外,有FileReader、BufferReader等,当然
   做开发的经常碰到文件的操作,非凡是文件的“读”操作。在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/ 

Tags:JDK java 文件

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接