0

org.apache.commons.io.FileUtils.copyURLToFile でダウンロードを中断することは可能ですか?

私は1行で別のスレッドを持っています

org.apache.commons.io.FileUtils.copyURLToFile(new URL(url), targetFile);

外部からのダウンロードをすぐに止めたい。

ありがとうございました!

threadFetch = new Thread(){
                @Override
                public void run() {
                    try {
                        isFetching = true;
                        org.apache.commons.io.FileUtils.copyURLToFile(new URL(url), targetFile);
                        isFetching = false;
                    } catch (IOException ex) {
                        Logger.getLogger(YoutubeMovieLink.class.getName()).log(Level.SEVERE, null, ex);
                    }
                }
            };
            threadFetch.start();
4

2 に答える 2

0

他の多くの方法と同様に、このコマンドにはタイムアウト オプションがありません。

私もこの種の問題を多くの状況で実行しているので、タイムアウトを指定してコマンドを実行するための小さなユーティリティ メソッドを作成しました。

public static <T> T runWithTimeout(Callable<T> task, int timeout) throws Exception{
    ExecutorService executor = Executors.newSingleThreadExecutor();
    Future<T> future = executor.submit(task);
    T result = future.get(timeout, TimeUnit.SECONDS);
    executor.shutdown();
    return result;
}
于 2012-05-11T12:57:03.517 に答える