Androidはネットワークファイルをダウンロードします.
2386 ワード
もっと読む
ファイルのアップロードを実現しました.ファイルのアップロードは自分でPostフォームに組み合わせた形でHttpのPost送信を行います.これはファイルのダウンロードです.実はダウンロードファイルはホームページを開くのと同じです.ウェブページを開くと内容が表示されます.ファイルを保存するのはファイルに保存すればいいです.
実現されたコードは基本的に以下の通りです.
上のコードはプログレスバー機能を実現していません.プログレスバー機能を実現するには、メッセージを使ってプロンプトを送信することを考えています.まずメッセージを実現します.
ファイルのアップロードを実現しました.ファイルのアップロードは自分でPostフォームに組み合わせた形でHttpのPost送信を行います.これはファイルのダウンロードです.実はダウンロードファイルはホームページを開くのと同じです.ウェブページを開くと内容が表示されます.ファイルを保存するのはファイルに保存すればいいです.
実現されたコードは基本的に以下の通りです.
public void downFile(String url, String path, String fileName)
throws IOException {
if (fileName == null || fileName == "")
this.FileName = url.substring(url.lastIndexOf("/") + 1);
else
this.FileName = fileName; // , ,
URL Url = new URL(url);
URLConnection conn = Url.openConnection();
conn.connect();
InputStream is = conn.getInputStream();
this.fileSize = conn.getContentLength();//
if (this.fileSize <= 0) { // 0
throw new RuntimeException(" ");
}
if (is == null) { //
sendMsg(Down_ERROR);
throw new RuntimeException(" ");
}
FileOutputStream FOS = new FileOutputStream(path + this.FileName); // ,
byte buf[] = new byte[1024];
downLoadFilePosition = 0;
int numread;
while ((numread = is.read(buf)) != -1) {
FOS.write(buf, 0, numread);
downLoadFilePosition += numread
}
try {
is.close();
} catch (Exception ex) {
}
}
このコードにより、SDカードなどのデバイスにコンテンツを保存することができます.もちろん、インターネットを利用するには、インターネットへのアクセス権限が必要です.これは自分で追加する必要があります.ここでは追加しません.上のコードはプログレスバー機能を実現していません.プログレスバー機能を実現するには、メッセージを使ってプロンプトを送信することを考えています.まずメッセージを実現します.
private Handler downloadHandler = new Handler() { // ,
@Override
public void handleMessage(Message msg) { // ,
if (!Thread.currentThread().isInterrupted()) {
switch (msg.what) {
case DOWN_START:
pb.setMax(fileSize); //
case DOWN_POSITION:
pb.setProgress(downLoadFilePosition); //
break;
case DOWN_COMPLETE:
Toast.makeText(DownLoadFileTest.this, " !", 1).show(); //
break;
case Down_ERROR:
String error = msg.getData().getString(" !");
Toast.makeText(DownLoadFileTest.this, error, 1).show();
break;
}
}
super.handleMessage(msg);
}
};
このようにダウンロードする時には、該当のメッセージを送信すれば、相応のヒントがあります.もう細かく書きません