JAVA一次读取文本文件的所有内容
我们都习惯于一次把文本的原始内容直接读取到内存中再做处理(暂时不考虑内存大小),这样做效率也会提高。很多人用readline()之类的方法,可能需要反复访问文件,而且每次readline()都会调用编码转换,降低了速度,所以,在已知编码的情况下,按字节流方式先将文件都读入内存,再一次性编码转换是最快的方式,如:
import java.io.*;
public class testIO {
public static void main(String[] args) {
File file=new File("c://test.txt"); //我的文件在C盘下
//String content=readToString(file);
System.out.println(readToString(file));
}
public static String readToString(File file) {
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();
}
return new String(filecontent);//返回文件内容,默认编码
}
}
这种方法的好处是读取的内容可以彻底保持文件的原貌,而且速度应该是最快的,因为只需要调用一次文件访问,字符编码转换也只需要一次。上面的代码我都是默认的编码,文件编码不同,道理都是一样的!!!
Recent Comments