`
angushj
  • 浏览: 57222 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

java 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:二进制方式读取文件

    import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; public class FileOperation { public static void...

    Java文件处理工具类--FileUtil

    import java.io.*; /** * FileUtil. Simple file operation class. * * @author BeanSoft * */ public class FileUtil { /** * The buffer. */ protected static byte buf[] = new byte[1024]; /**...

    Java读取资源文件工具类--ReadConfigation(java源码)

    import java.io.File; import java.io.FileInputStream; import java.util.Properties; public class ReadConfigation{ /** * 属性文件全名 */ private static final String PFILE ="Config....

    java解析txt

    * 功能:Java读取txt文件的内容 * 步骤:1:先获得文件句柄 * 2:获得文件句柄当做是输入一个字节码流,需要对这个输入流进行读取 * 3:读取到输入流后,需要读取生成字节流 * 4:一行一行的输出。readline...

    java IO 编程实例

    import java.io.FileNotFoundException; import java.io.FileReader; ... System.out.println("找不到指定的文件"); }catch(Exception ee){ System.out.println("文件读取错误"); } } }

    读取txt文件,统计“java”字符串出现的次数

    读取txt文件,统计“java”字符串出现的次数

    深刻理解java io

    3) FileInputStream:把一个文件作为InputStream,实现对文件的读取操作 4) PipedInputStream:实现了pipe的概念,主要在线程中使用 5) SequenceInputStream:把多个InputStream合并为一个InputStream 2) Out ...

    JAVA上百实例源码以及开源项目

     Java访问权限控制,为Java操作文件、写入文件分配合适的权限,定义写到文件的信息、定义文件,输出到c:/hello.txt、写信息到文件、关闭输出流。 Java绘制图片火焰效果 1个目标文件 摘要:Java源码,图形操作,火焰...

    教你彻底明白Java的IO系统

    在Java的IO中,所有的stream(包括Input和Out stream)都包括两种类型: 1.1 以字节为导向的stream 以字节为导向的stream,表示以字节为单位从stream中读取或往stream中写入信息。以字节为导向的stream包括下面几种...

    Java仿Windows 窗口化复制文件功能.rar

    Java仿Windows 窗口化复制文件功能,  class SelectFileListener implements ActionListener { ... //将读取的字节数组写入目标文件输出流中   }   fin.close(); //关闭输入流   fout.close(); //关闭输出流

    java压缩文件源码--ZipUtils

    import java.io.*; import java.util.*; import java.util.zip.Adler32; import java.util.zip.CheckedInputStream; import java.util.zip.ZipEntry; import java.util.zip.ZipInputStream; import java.util.zip....

    java io InputStream and outputStream

    // 读取文件 for (int i = 0; i ; i++) { System.out.print((char) cont[i]); } is.close();// 关闭文件 // 保存文件 File file2 = new File("bbb.txt");// 定位文件 OutputStream os...

    Spire.Pdf.zip 读取PDF文件中的信息

    读取PDF文件中的信息 package com.zht; import java.io.File; import java.io.UnsupportedEncodingException; import java.sql.Connection; import java.sql.DriverManager; import java.sql....

    java源码包---java 源码 大量 实例

     Java访问权限控制,为Java操作文件、写入文件分配合适的权限,定义写到文件的信息、定义文件,输出到c:/hello.txt、写信息到文件、关闭输出流。 Java绘制图片火焰效果 1个目标文件 摘要:Java源码,图形操作,火焰...

    Java之IO流学习总结

    Java IO流学习总结 Java流操作有关的类或接口: Java流类图结构: ...流是一组有顺序的,有起点和终点的字节集合,是对数据传输的总称或抽象。... 可以用于多线程下载或多个线程同时写数据到文件。

    用JAVA读取硬盘序列号

    将ChenminDiskIDJoc.jar 加入环境变量 这两个文件放入window 文件夹 或者JDK的bin文件夹 或者你的应用文件夹 DiskID32.dll DiskID.dll <br> public static String chenmin.io.DiskID.Factory() 返回硬盘...

    Java从.CSV文件中读取数据和写入

    .CSV文件是以逗号分割的数据仓储,读取数据时从每一行中读取一条数据元祖,也是一条数据,再用字符分割的方式获取表中的每一个数据项。  import java.io.BufferedReader;   import java.io.FileReader;    ...

    java IO流 之 输入流 InputString()的使用

    主要介绍了java IO流 之 输入流 InputString()的使用,以及读取数据的三种方式详解,非常不错,需要的朋友可以参考下

    javaIO流工具类,可以直接使用

    * 实现将文件读取到一个byte数组 */ public static byte[] read2(String filename){ try{ InputStream in = new FileInputStream(filename); byte[] buf = new byte[in.available()]; in.read(buf); in....

Global site tag (gtag.js) - Google Analytics