我们做文本处理的时候的最常用的就是读写文件了,尤其是读取文件,不论是什么文件,我都倾向于一次性将文本的原始内容直接读取到内存中再做处理,当然,这需要你有一台大内存的机器,内存不够者……可以一次读取少部分内容,分多次读取。
读取文件效率最快的方法就是一次全读进来,很多人用readline()之类的方法,可能需要反复访问文件,而且每次readline()都会调用编码转换,降低了速度,所以,在已知编码的情况下,按字节流方式先将文件都读入内存,再一次性编码转换是最快的方式,典型的代码如下:

package com.example.utils;

import java.io.*;

public class ReadFile {

    public String readToString(String fileName) {
String encoding = "UTF-8";
File file = new File(fileName);
Long filelength = file.length();
byte[] filecontent = new byte[filelength.intValue()];
try {
FileInputStream in = new FileInputStream(file);
in.read(filecontent);
in.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
try {
return new String(filecontent, encoding);
} catch (UnsupportedEncodingException e) {
System.err.println("The OS does not support " + encoding);
e.printStackTrace();
return null;
}
} }

  

最新文章

  1. 谢欣伦 - OpenDev原创教程 - 蓝牙设备查找类CxBthRadio & CxBthRadioFind
  2. PHP 格中方法
  3. 解读 C 语言中的指针
  4. 通过angularJS官方案例快速入门
  5. Xshell配色方案
  6. 二维码URL自己主动辨别Android和ISO设备,以便扫码后倒入不同的下载链接
  7. Java Class类以及获取Class实例的三种方式
  8. git stash让bug来的更猛烈些吧
  9. JavaScript 操作符 变量
  10. 【mysql】关于InnoDB表text blob大字段的优化
  11. Google Chrome谷歌/火狐/Safari浏览器开发者工具基本使用教程
  12. 四、Html常用标签
  13. MOOS学习笔记3——命令行
  14. 依赖注入容器-- Autofac
  15. 自定义bash提示符
  16. ORACLE用户表空间使用情况查询
  17. Netty 系列九(支持UDP协议).
  18. [ZJOI2016]小星星&[SHOI2016]黑暗前的幻想乡(容斥)
  19. Swift中关于集合计算的几种函数记录(intersect、symmetricDifference、union、subtract)
  20. Zookeeper 通知更新可靠吗? 解读源码找答案!

热门文章

  1. docker local registry server gave HTTP response to HTTPS client
  2. webstorm's interpreter
  3. django框架基础
  4. EditPlus配置Java
  5. Linux sed 命令字符串替换使用方法详解
  6. Django中Session
  7. scrapy 下载图片 from cuiqingcai
  8. sqlalchemy学习笔记
  9. centos7.3安装MongoDB
  10. poj 3687 Labeling Balls - 贪心 - 拓扑排序