`
ddandyy
  • 浏览: 214535 次
  • 性别: Icon_minigender_1
  • 来自: 目前上海
社区版块
存档分类
最新评论

read file to 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


	public static String ReadFileToString(String url) {
		StringBuffer str = new StringBuffer();
		BufferedReader in = null;
		File inputFile = null;
		try {
			inputFile = new File(url);

			in = new BufferedReader(new InputStreamReader(new FileInputStream(inputFile), "GB2312"));
			String line = null;
			str = new StringBuffer((int) inputFile.length());

			while ((line = in.readLine()) != null) {
				str.append(line);
			}
			in.close();
		}
		catch (FileNotFoundException e2) {
			try {
				if (!new File(inputFile.getParent()).exists())
					new File(inputFile.getParent()).mkdirs();
				inputFile.createNewFile();
			}
			catch (IOException e) {
				e.printStackTrace();
			}
		}
		catch (IOException e3) {
			e3.printStackTrace();
		}
		return str.toString();
	}
分享到:
评论
1 楼 阿浊I 2010-01-13  
试了,不行,不知道为什么
读得是60M的文件

相关推荐

    dom4j以String的方式读取XML的内容,并给String的值赋值,写入XML中

    String xmlContent = FileUtils.readFileToString(new File("path_to_xml_file"), "UTF-8"); Document document = DocumentHelper.parseText(xmlContent); ``` 2. **查找和修改XML节点** DOM4J提供了解析后的...

    Apache common io转码工具类入门教程

    String contentGBK = FileUtils.readFileToString(inputFile, Charsets.GBK); ``` 2. **转换编码** 现在,我们有了GBK编码的文件内容,接下来使用`String`对象的`getBytes(Charset charset)`方法将字符串转换为...

    对SD卡实现增删改查

    private String readFileToString(File file) throws IOException { StringBuilder content = new StringBuilder(); BufferedReader reader = new BufferedReader(new FileReader(file)); String line; while (...

    java 文件操作类

    - `readFileToString(File file, String encoding)`:读取文件内容并转换为字符串。 - `writeStringToFile(File file, String content, String encoding)`:将字符串写入文件。 - `copyFile(File source, File dest)...

    java转码工具类

    String str = readFileToString(file, fromEncode); writeStringToFile(file, str, toEncode); } catch (IOException e) { System.out.println("Convert failed. File not exist?"); e.printStackTrace(); } ...

    org.apache.commons.io.FileUtils

    - `readFileToString(File file, Charset encoding)`: 这个方法用于将整个文件读取为一个字符串,指定字符编码。它比直接使用`BufferedReader`或`InputStreamReader`更简洁,同时避免了手动处理字符编码问题。 - `...

    ArrayUtil+DateUtil+FileUtil+ReguUtil+StringUtil

    - **实例方法**:`createFile`创建新文件,`deleteFile`删除文件,`copyFile`复制文件,`readFileToString`读取文件内容并转化为字符串,`writeStringToFile`将字符串写入文件。 4. **ReguUtil**: - **正则...

    读写SD卡文件的源代码

    - `public static String readFileToString(File file, String encoding)`: 这个方法用于将文件内容读取为字符串。它使用`Files.readAllBytes()`读取整个文件的字节,然后使用`new String(bytes, encoding)`转换为...

    web页面导入csv文件

    然后,你可以使用`FileUtils.readFileToString()`方法(假设已添加Apache Commons IO依赖)来读取文件内容。 读取到CSV文件内容后,我们可以使用Java 8的`Stream API`配合`BufferedReader`解析每一行,或者使用第三...

    文件操作类

    - `readFileToString(File file, Charset encoding)`: 这个方法会读取整个文件并返回其内容,作为字符串。`encoding`参数指定字符编码。 - `writeStringToFile(File file, String data, Charset encoding)`: 写...

    格式化xml字符串,并生成xml文件

    public static String readFileToString(File file) throws Exception { FileInputStream fis = new FileInputStream(file); InputStreamReader reader = new InputStreamReader(fis, "UTF-8"); Source source =...

    收集的工具类JUtils(java源码)

    - `JUtils.readFileToString(File file, String encoding)`: 读取文件内容并转换为字符串,支持指定编码。 - `JUtils.writeFileFromString(String content, File file, String encoding)`: 将字符串写入文件,同样...

    【Java基础】-- FileUtils工具类常用方法(csdn)————程序.pdf

    FileUtils提供了一些静态方法来读取文件内容,如`readFileToString`用于将整个文件读取为一个字符串,支持指定编码,例如UTF-8。`readLines`方法则可以按行读取文件内容,返回一个包含所有行的列表。这些方法简化了...

    commons-fileUpload组件

    String content = FileUtils.readFileToString(fileItem.getInputStream(), StandardCharsets.UTF_8); ``` **总结** Apache Commons FileUpload和Commons IO的结合使用,极大地简化了JSP环境下的文件上传处理。...

    java日常处理工具类part1-代码

    工具类可能封装了读取文件到字符串、写字符串到文件、复制文件等常见操作,如`readFileToString(File file, Charset charset)`,`writeStringToFile(File file, String content, boolean append)`。 5. **异常处理*...

    java 工具类

    - `readFileToString(String filePath)`: 读取文件内容并返回一个字符串,通常用于文本文件。 - `writeStringToFile(String content, String filePath)`: 将字符串内容写入文件,可能会有追加或覆盖模式的选择。 ...

    使用Common-fileUpload 上传文件 读取文件内容

    String fileContent = FileUtils.readFileToString(uploadedFile, StandardCharsets.UTF_8); // 处理文件内容... } } } catch (FileUploadException e) { e.printStackTrace(); } } } ``` 这段代码中,...

    FileUtil类文件整理

    3. **读写操作**:为了读取文件内容,`FileUtil`类可能提供了`readFileToString(String filePath)`或`readFileToBytes(String filePath)`方法,分别将文件内容转换为字符串和字节数组。同样,它也可能包含`...

    java工具类 utils.zip

    例如,`readFileToString(File file, String encoding)`用于读取文件内容,`deleteFile(String filePath)`用于删除文件。 10. **RsaUtil.java**:RSA是一种非对称加密算法,常用于数据的安全传输。此类可能包含RSA...

    java读取文件免除乱码

    String content = FileUtils.readFileToString(new File("path_to_file"), "UTF-8"); System.out.println(content); ``` 3. 使用`Files`类(Java NIO.2): ```java import java.nio.charset.StandardCharsets...

Global site tag (gtag.js) - Google Analytics