|
|
本帖最后由 xmubingo 于 2012-3-29 16:02 编辑
一般我们确定行数方法是读一行行:- public static void main(String args[])throws Exception
- {
- Long startTime = System.currentTimeMillis();
- BufferedReader br = new BufferedReader(new FileReader("F:\\hs37p1.EID\\hs37.intrEID"));
- double i=0;
- while(br.readLine()!=null)
- {
- i++;
- }
- br.close();
- System.out.println(String.valueOf(i));
- Long endTime = System.currentTimeMillis();
- System.out.println("Totle time is "+ (endTime - startTime) + " milliseconds");
- }
复制代码 网上说有种方法很快:- static public void main(String args[]) {
- Long startTime = System.currentTimeMillis();
- File test = new File("F:\\hs37p1.EID\\hs37.intrEID");
- long fileLength = test.length();
- LineNumberReader rf = null;
- try {
- rf = new LineNumberReader(new FileReader(test));
- if (rf != null) {
- double lines = 0;
- rf.skip(fileLength);
- lines = rf.getLineNumber();
- rf.close();
- System.out.println(String.valueOf(lines));
- }
-
- } catch (IOException e) {
- if (rf != null) {
- try {
- rf.close();
- } catch (IOException ee) {
- }
- }
- }
- Long endTime = System.currentTimeMillis();
- System.out.println("Totle time is "+ (endTime - startTime) + " milliseconds");
- }
复制代码 对一个1.72GB的文件,确定他们的行数871812行。
第一种方法:19466 milliseconds
第二种方法:18732 milliseconds
没觉得快多少。。。。。。。。
18秒对于webserver来说太可怕 了。
有没有更快的方法?求教育 |
|