ネット上のファイルの存在チェック

446 views
Skip to first unread message

Stone

unread,
Jul 23, 2010, 12:39:21 AM7/23/10
to 日本Androidの会
ネット上に目的のhtmlファイルが存在してる時だけ、そのhtmlを読み込むアプリを作ってます。
以下のようなコードを書きました。

private boolean docheckifexistfile(String myhtml)
{
HttpURLConnection c=null;
InputStream in=null;
int size=0;
byte[] w=new byte[1024];

try {

URL url=new URL(myhtml);
c=(HttpURLConnection)url.openConnection();
c.setRequestMethod("GET");
c.connect();
// len=c.getContentLength();
in=c.getInputStream();

size=in.read(w);

in.close();
c.disconnect();

}catch(Exception e){

try{
if(c!=null) c.disconnect();
if (in!=null) in.close();
}catch(Exception e2){}

}

if(size<=0) return false;
else return true;
}


一応動きますけど、あまりに不細工です。もっとすっきりした方法があるのでしょうか?
最初はlen=c.getContentLength();でlenがゼロより大きかったら存在、としてたのですが
存在するのになぜか「存在してません」となるのでこのようにしました。
よろしくお願いします。

飯塚康至

unread,
Jul 23, 2010, 12:51:39 AM7/23/10
to android-g...@googlegroups.com
こんにちは、飯塚です。

getResponseCodeで404を見ればいいのでは?HTML限定でしょうか?

ちなみに本件とは関係ないのですが、最近はMLに名乗らず投稿するのが普通なのでしょうか。

2010年7月23日13:39 Stone <ish...@cap.bekkoame.ne.jp>:

> --
> このメールは Google グループのグループ「日本Androidの会」の登録者に送られています。
> このグループに投稿するには、android-g...@googlegroups.com にメールを送信してください。
> このグループから退会するには、android-group-j...@googlegroups.com にメールを送信してください。
> 詳細については、http://groups.google.com/group/android-group-japan?hl=ja からこのグループにアクセスしてください。
>
>

--
以上、宜しくお願いします。

飯塚 康至

Lewske Wada

unread,
Jul 23, 2010, 1:35:13 AM7/23/10
to android-g...@googlegroups.com
On Jul 23, 2010, at 1:51 PM, 飯塚康至 wrote:
最近はMLに名乗らず投稿するのが普通なのでしょうか。

メールには From: 行がそのためにある訳なので, ネチケットとしては別にいいと思います.

        HttpURLConnection c=null;
        InputStream in=null;
        int size=0;
        byte[] w=new byte[1024];

       try {

        URL url=new URL(myhtml);
        c=(HttpURLConnection)url.openConnection();
        c.setRequestMethod("GET");
        c.connect();
       // len=c.getContentLength();
        in=c.getInputStream();

         size=in.read(w);

         in.close();
         c.disconnect();
一応動きますけど、あまりに不細工です。もっとすっきりした方法があるのでしょうか?

不細工というより, シンプルなので w が溢れ出したときに
全部とれなくて困るんじゃないでしょうか.

Cheers,
Lewske "Ryu" Wada
Web: http://run.sh/
Email: r...@run.sh
ICQ: 348990359

飯塚康至

unread,
Jul 23, 2010, 2:10:11 AM7/23/10
to android-g...@googlegroups.com
なるほど、納得しました。ありがとうございます。
確かに前文で名乗る必要はなく、後付に署名がある方が紙の手紙とも同じ形式になります。
まずは、自分の常識から疑わないと行けないですね。ご指摘感謝します。

2010年7月23日14:35 Lewske Wada <r...@run.sh>:

Stone

unread,
Jul 23, 2010, 3:44:25 AM7/23/10
to 日本Androidの会
Stoneです。
いつもブラウザのAndroid会から投稿してるので名前が出てないのに気付きませんでした。
コード修正しました。不細工の度合いが少し縮小したかも。
どうもありがとうざいました。

private boolean docheckifexistfile(String myhtml)
{
HttpURLConnection c=null;
int resCode=-1;

try {

URL url=new URL(myhtml);
c=(HttpURLConnection)url.openConnection();
c.setRequestMethod("HEAD");
c.connect();
resCode = c.getResponseCode();
     c.disconnect();

}catch(Exception e){

try{
if(c!=null) c.disconnect();
}catch(Exception e2){}

}


if(resCode==HttpURLConnection.HTTP_OK) return true;
else return false;

}


> 不細工というより, シンプルなので w が溢れ出したときに
> 全部とれなくて困るんじゃないでしょうか.


> 飯塚 康至- 引用テキストを表示しない -
>
> - 引用テキストを表示 -
Reply all
Reply to author
Forward
0 new messages