gpt4 book ai didi

java - Android:如何从互联网上下载二进制文件

转载 作者:行者123 更新时间:2023-11-30 04:41:46 25 4
gpt4 key购买 nike

我想从互联网上下载一个文件。到目前为止,我有 ff。代码:

package com.example.downloadfile;

import java.io.BufferedOutputStream;

import android.app.Activity;
import android.os.Bundle;
import android.widget.TextView;

public class DownloadFile extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
TextView tv = new TextView(this);

String url = "http://www.fullissue.com/wp-content/uploads/2010/12/Adam-Lambert.jpg";
String FileName = "/LocalDisk/jm"; // save in your sdcard


try{

java.io.BufferedInputStream in = new java.io.BufferedInputStream(new java.net.URL(url).openStream());
java.io.FileOutputStream fos = new java.io.FileOutputStream(FileName);
java.io.BufferedOutputStream bout = new BufferedOutputStream(fos,1024);
byte[] data = new byte[1024];
int x=0;
while((x=in.read(data,0,1024))>=0){
bout.write(data,0,x);
}
fos.flush();
bout.flush();
fos.close();
bout.close();
in.close();

}catch (Exception e){
/* Display any Error to the GUI. */
tv.setText("Error: " + e.getMessage());
}

this.setContentView(tv);
}
}

我遇到错误,当我运行这段代码时,我的 UI 中出现“Error:/LocalDisk/jm”。

非常感谢您的帮助!我是 java 和 android 开发的新手...:)

最佳答案

String FileName = "/LocalDisk/jm";

这是绝对路径所以你必须这样使用它

String FileName = Environment.getExternalStorageDirectory() + "/jm"; // /sdcard/jm

关于 getExternalStorageDirectory() 的更多信息.此外,在 UI 线程中下载文件也不是什么好主意,因为它会阻塞操作并可能导致 Activity Not Responding。最好的方法是使用 AsyncTask在后台处理此操作并在完成后通知图形用户界面。

关于java - Android:如何从互联网上下载二进制文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5867189/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com