不同实现示例如下:
方法一:
//RandomAccessFile 读文件 得到文件数据的总行数
String line=null;
int count=0;
try {
RandomAccessFile raf=new RandomAccessFile("G:/test.txt", "r");
long timeStart=System.currentTimeMillis();//时间单位为ms
while(null != (line=raf.readLine())) {
line=new String(line.getBytes("UTF-8"),"GBK");
// System.out.println(line+","+line.length());//得到每条数据的字符串长度
}
long timeEnd=System.currentTimeMillis();
System.out.println("本次读出的数据共"+count+"条!@所耗时间为:"+(timeEnd-timeStart)="ms");
raf.close();
} catch (Exception e) {
e.printStackTrace();
}
打印结果:
本次读出的数据共11684条!@所耗时间为:8351ms
方法二:
try {
File file4=new File("test.txt");
if(file4.exists()) {
FileReader fr=new FileReader(file4);
LineNumberReader lnr=new LineNumberReader(fr);
int lineNumber=0;
long timeS=System.currentTimeMillis();//时间单位为ms
while(null != lnr.readLine()) {
lineNumber+=1;
}
long timeE=System.currentTimeMillis();
System.out.println("此种方法所耗时间为:"+(timeE-timeS)+"ms,文件总条数为:"+lineNumber+"条");
lnr.close();
}
} catch (Exception e) {
e.printStackTrace();
}
打印结果:
此种方法所耗时间为:29ms,文件总条数为:11684条
方法三:
try {
File file5=new File("G:/test.txt");
int lines=0;
long timeS=System.currentTimeMillis();//单位为ms
if(file5.exists()) {
long fileLength = file5.length();
LineNumberReader lineNumberReader =new LineNumberReader(new FileReader(file5));
lineNumberReader.skip(fileLength);
lines=lineNumberReader.getLineNumber();
lineNumberReader.close();
}
long timeE=System.currentTimeMillis();
System.out.println("此种方法所耗时间为:"+(timeE-timeS)+"ms,文件总条数为@:"+lines+"条");
} catch (Exception e) {
e.printStackTrace();
}
打印结果:
此种方法所耗时间为:14ms,文件总条数为@:11684条
方法四:
//快速得到文件数据的条数 方法3
try {
long timeS=System.currentTimeMillis();
long lines=Files.lines(Paths.get(new File("G:/hdf5_write_txt/a0909.txt").getPath())).count();
long timeE=System.currentTimeMillis();
System.out.println("此种方法所耗时间为:"+(timeE-timeS)+"ms,文件总条数为@#:"+lines+"条");
} catch (Exception e) {
e.printStackTrace();
}
打印结果:
此种方法所耗时间为:157ms,文件总条数为@#:11684条