0

C:ドライブにabcd.logという名前のログファイルがあり、Javaプログラムで読み取っています。プログラムがログファイルを完全に読み取るのにかかった時間を測定したいので、これを実現する方法を教えてください。 !!

public class Readdemo {



    public static void main(String[] args) {

        File file = new File("C://abcd.log");
        FileInputStream fis = null;

        try {
            fis = new FileInputStream(file);

            System.out.println("Total file size to read (in bytes) : "
                    + fis.available());

            int content;
            while ((content = fis.read()) != -1) {
                // convert to char and display it
                System.out.print((char) content);
            }

        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            try {
                if (fis != null)
                    fis.close();
            } catch (IOException ex) {
                ex.printStackTrace();
            }
        }
    }
}

私はこれを思いついた。

public class BufferedRedeem {


    public static void main(String[] args) {

        BufferedReader br = null;
        long startTime = System.currentTimeMillis();

        try {

            String sCurrentLine;

            br = new BufferedReader(new FileReader("C://abcd.log"));

            while ((sCurrentLine = br.readLine()) != null) {
                System.out.println(sCurrentLine);
            }
            long elapsedTime = System.currentTimeMillis() - startTime;

            System.out.println("Total execution time taken in millis: "
                    + elapsedTime);
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            try {
                if (br != null)br.close();
            } catch (IOException ex) {
                ex.printStackTrace();
            }
        }

    }

}
4

1 に答える 1

2

System.currentTimeMillis()ミリ秒単位で前後の時間を記録するために使用するだけです。

System.nanoTime()別のオプションですが、違いと使用法を理解するためにこの回答を読む価値があります。

于 2012-09-19T15:10:21.260 に答える