人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

このようにしてjavaでwww上の任意のファイルをダウンロードしたいのですが、
存在するURLであっても、時にレスポンスが帰ってこなくなり
何も例外を出すことなく
プロセスが永久にレスポンスを待ち続けることがあります。



以下の処理はThread化しているのですが

こういうとき、
一定時間経過したらプロセスを自動的に強制終了させる方法として、
できるだけ確実で安全な方法を教えてください。


FileOutputStream output=new FileOutputStream( file );

URL url = new URL( target );
Object content =null;
content = url.getContent();

if( content instanceof InputStream ) {
DataInputStream input= new DataInputStream( (InputStream)content ) ;
byte buf[]=new byte[256];
int len;
while((len=input.read(buf))!=-1){
output.write(buf,0,len);
}
output.flush();
output.close();
input.close();
}


●質問者: tak
●カテゴリ:コンピュータ インターネット
✍キーワード:byte Java len object URL
○ 状態 :終了
└ 回答数 : 1/1件

▽最新の回答へ

1 ● newta
●60ポイント

URLConnectionを使用しているならば

下の設定でタイムアウト時間を設定できないでしょうか?

System.setProperty (

"sun.net.client.defaultConnectTimeout" ,

Integer.toString ( URLCONNECTION_TIMEOUT ) );

System.setProperty (

"sun.net.client.defaultReadTimeout" ,

Integer.toString( URLCONNECTION_TIMEOUT ) );


http://java.sun.com/j2se/1.5.0/ja/docs/ja/guide/net/properties.h...

◎質問者からの返答

一応、解決したと思います。

ありがとうございました

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ