首页 | 注册 | 登陆
首页 >> 技术专栏 >> java文章 >> java其它 

io读取文件到String


作者java 来源java 加入时间:2006年03月28日
摘要:
io读取文件到String

  public static String loadAFileToStringDE1(File f) throws IOException { 
        long beginTime = System.currentTimeMillis();
   &nb;…

转载:转载请保留本信息,本文来自
http://www.51dibs.com
/html/2006/article/info14/a_63f89b90312cc64a.htm




io读取文件到String


站点:爱心种子小博士 关键字:io读取文件到String




io读取文件到String
  public static String loadAFileToStringDE1(File f) throws IOException { 
        long beginTime = System.currentTimeMillis();
        InputStream is = null;
        String ret = null;
        try {
            is = new BufferedInputStream( new FileInputStream(f) );
            long contentLength = f.length();
            ByteArrayOutputStream outstream = new ByteArrayOutputStream( contentLength > 0 ? (int) contentLength : 1024);
            byte[] buffer = new byte[4096];
            int len;
            while ((len = is.read(buffer)) > 0) {
                outstream.write(buffer, 0, len);
            }           
            outstream.close();
            ret = outstream.toString();
            //byte[] ba = outstream.toByteArray();
            //ret = new String(ba);
        } finally {
            if(is!=null) {try{is.close();} catch(Exception e){} }
        }
        long endTime = System.currentTimeMillis();
        System.out.println("方法1用时"+ (endTime-beginTime) + "ms");
        return ret;       
    }
   

    public static String loadAFileToStringDE2(File f) throws IOException { 
        long beginTime = System.currentTimeMillis();
        InputStream is = null;
        String ret = null;
        try {
            is =  new FileInputStream(f) ;
            long contentLength = f.length();
            byte[] ba = new byte[(int)contentLength];
            is.read(ba);
            ret = new String(ba);
        } finally {
            if(is!=null) {try{is.close();} catch(Exception e){} }
        }
        long endTime = System.currentTimeMillis();
        System.out.println("方法2用时"+ (endTime-beginTime) + "ms");
        return ret;       
    }   
   

 

    public static String loadAFileToStringDE3(File f) throws IOException {
        long beginTime = System.currentTimeMillis();
        BufferedReader br = null;
        String ret = null;
        try {
            br =  new BufferedReader(new FileReader(f));
            String line = null;
            StringBuffer sb = new StringBuffer((int)f.length());
            while( (line = br.readLine() ) != null ) {
                sb.append(line).append(LINE_BREAK);
            }
            ret = sb.toString();
        } finally {
            if(br!=null) {try{br.close();} catch(Exception e){} }
        }
        long endTime = System.currentTimeMillis();
        System.out.println("方法3用时"+ (endTime-beginTime) + "ms");
        return ret;       
    }

3个方法去读取一个大于50M的文件,当不设置jvm参数时都OutofMemery,当设置-Xmx128M时。只有方法3 可以通过,设置到-Xmx256M时也只有方法3可以通过,干脆设置512M,都可以了,运行时间如果正常的话一般都在4~5S





发布人:java
→ 推荐给我的好友 → 报告错误链接
上篇文章:M 指南:入门
下篇文章:重建方式 重置序列值得简单方式。
〖文章打印〗
〖关闭窗口〗
发表评论
查看评论
中“io读取文件到String”相关内容 中“io读取文件到String”相关内容
中“io读取文件到String”相关内容 中“io读取文件到String”相关内容
中“io读取文件到String”相关内容 中“io读取文件到String”相关内容

关于我们网站留言友情链接与我在线与我聊天领取红包管理TOP