RLouise的gravatar头像
RLouise 2017-05-09 10:24:12

java写一个程序,计算打开一个pdf文档需要多长的时间为什么不行?

public static void main(String args[]){
try {
Date dd = new Date();
long pre = dd.getTime();
Runtime.getRuntime().exec("C:\\FoxitSoftware\\FoxitReader\\FoxitReader.exe H:\\2.pdf");
dd = new Date();
long post = dd.getTime();
System.out.println(post - pre);
我想测试打开不同大小的PDF文档需要多长时间,可是按照网上查的方法好像不对啊

所有回答列表(3)
最代码官方的gravatar头像
最代码官方  LV168 2017年5月9日
import java.io.*;

/**
 * 示例:执行进程并返回结果
 */
public class ProcessExecutor {

    public static final int SUCCESS = 0;            // 表示程序执行成功

    public static final String COMMAND = "java.exe -version";    // 要执行的语句

    public static final String SUCCESS_MESSAGE = "程序执行成功!";

    public static final String ERROR_MESSAGE = "程序执行出错:";

    public static void main(String[] args) throws Exception {

        // 执行程序
        Process process = Runtime.getRuntime().exec(COMMAND);

        // 打印程序输出
        readProcessOutput(process);

        // 等待程序执行结束并输出状态
        int exitCode = process.waitFor();

        if (exitCode == SUCCESS) {
            System.out.println(SUCCESS_MESSAGE);
        } else {
            System.err.println(ERROR_MESSAGE + exitCode);
        }
    }

    /**
     * 打印进程输出
     *
     * @param process 进程
     */
    private static void readProcessOutput(final Process process) {
        // 将进程的正常输出在 System.out 中打印,进程的错误输出在 System.err 中打印
        read(process.getInputStream(), System.out);
        read(process.getErrorStream(), System.err);
    }

    // 读取输入流
    private static void read(InputStream inputStream, PrintStream out) {
        try {
            BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream));

            String line;
            while ((line = reader.readLine()) != null) {
                out.println(line);
            }

        } catch (IOException e) {
            e.printStackTrace();
        } finally {

            try {
                inputStream.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }
}

java不仅是调用外包程序打开文件,同时得等待外部程序响应才能得到从调用到打开文件结束的整个时间,请参考以上程序。

http://www.blogjava.net/yidinghe/archive/2012/10/26/390296.html

评论(0) 最佳答案
sayHelloWorld的gravatar头像
sayHelloWorld  LV22 2017年5月9日

文件太小,时间太短了吧。用

System.currentTimeMillis()

试试

RLouise的gravatar头像
RLouise  LV5 2017年5月9日

你说过的那种方法我之前也试过了

顶部 客服 微信二维码 底部
>扫描二维码关注最代码为好友扫描二维码关注最代码为好友