Java一次读取文本文件所有内容(已知编码)
2013-08-11 21:55
363 查看
我们做文本处理的时候的最常用的就是读写文件了,尤其是读取文件,不论是什么文件,我都倾向于一次性将文本的原始内容直接读取到内存中再做处理,当然,这需要你有一台大内存的机器,内存不够者……可以一次读取少部分内容,分多次读取。
读取文件效率最快的方法就是一次全读进来,很多人用readline()之类的方法,可能需要反复访问文件,而且每次readline()都会调用编码转换,降低了速度,所以,在已知编码的情况下,按字节流方式先将文件都读入内存,再一次性编码转换是最快的方式,典型的代码如下:
public String readToString(File file, String encoding) {
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;
}
}
这种方法的好处是读取的内容可以彻底保持文件的原貌,而且速度应该是最快的,因为只需要调用一次文件访问,字符编码转换也只需要一次。
读取文件效率最快的方法就是一次全读进来,很多人用readline()之类的方法,可能需要反复访问文件,而且每次readline()都会调用编码转换,降低了速度,所以,在已知编码的情况下,按字节流方式先将文件都读入内存,再一次性编码转换是最快的方式,典型的代码如下:
public String readToString(File file, String encoding) {
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;
}
}
这种方法的好处是读取的内容可以彻底保持文件的原貌,而且速度应该是最快的,因为只需要调用一次文件访问,字符编码转换也只需要一次。
相关文章推荐
- Java一次读取文本文件所有内容(已知文件编码)
- Java一次读取文本文件所有内容(已知编码)
- Java一次读取文本文件所有内容
- Java一次读取文本文件所有内容
- Java一次读取文本文件所有内容
- Java一次读取文本文件所有内容
- Java一次读取文本文件所有内容
- 一次读取文本文件的所有内容到std::string
- [转]java按指定编码写入和读取文件内容的类
- java读取文件夹里的所有xml文件内容
- C++代码一次读取文本文件全部内容到string对象
- Java推断文本文件编码格式以及读取
- java小工具(二)读取文本文件的内容到string
- java按指定编码写入和读取文件内容的类
- java 集合 从类似如下的文本文件中读取出所有的姓名,并打印出重复的 * 姓名和重复的次数,并按重复次数排序:
- 使用Java程序一次分段读取所有数据(如海量数据)并计数处理
- 一次读取文件中所有内容
- java按指定编码写入和读取文件内容的类
- Java自动根据文件内容的编码来读取避免乱码
- java快速读取文本文件最后一行数据内容,文本文件非常大