java 获取文件 总行数 比较

来源:互联网 发布:python sum(axis=1) 编辑:程序博客网 时间:2024/05/16 09:01
import java.io.BufferedInputStream;import java.io.FileInputStream;import java.io.FileReader;import java.io.InputStream;import java.io.LineNumberReader;import java.util.Calendar;public class TestRowCount {    public static void main(String[] args) {        long datestart = Calendar.getInstance().getTimeInMillis();        int count = getFileLineCounts("XXX");        System.out.println(count);        long dateend = Calendar.getInstance().getTimeInMillis();        System.out.println((dateend - datestart) / 1000);    }    public static int getFileLineCount(String filename) {        int cnt = 0;        LineNumberReader reader = null;        try {            reader = new LineNumberReader(new FileReader(filename));            @SuppressWarnings("unused")            String lineRead = "";            while ((lineRead = reader.readLine()) != null) {            }            cnt = reader.getLineNumber();        } catch (Exception ex) {            cnt = -1;            ex.printStackTrace();        } finally {            try {                reader.close();            } catch (Exception ex) {                ex.printStackTrace();            }        }        return cnt;    }    public static int getFileLineCounts(String filename) {        int cnt = 0;        InputStream is = null;        try {            is = new BufferedInputStream(new FileInputStream(filename));            byte[] c = new byte[1024];            int readChars = 0;            while ((readChars = is.read(c)) != -1) {                for (int i = 0; i < readChars; ++i) {                    if (c[i] == '\n') {                        ++cnt;                    }                }            }        } catch (Exception ex) {            cnt = -1;            ex.printStackTrace();        } finally {            try {                is.close();            } catch (Exception ex) {                ex.printStackTrace();            }        }        return cnt;    }}
总结:
每行的字符较多时, 使用第一个方法效率较高
每行的字符较少时, 使用第二个方法效率较高


转载于:http://www.blogjava.net/hwpok/archive/2012/12/06/392543.html

0 0