求助,哪位大哥帮我看下这个下载项目为什么下载不了文件呢?

ch_984326013 2010-12-28 11:24:17
源代码如下:
这个是download.java;包名为:package com.download;import com.utils.HttpDownloader;

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;

public class Download extends Activity {
private Button firstButton;
private Button secondButton;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
firstButton=(Button)findViewById(R.id.firstButton);
firstButton.setOnClickListener(new textButtonOnClickListener());
secondButton=(Button)findViewById(R.id.secondtButton);
secondButton.setOnClickListener(new mp3ButtonOnClickListener());
}
class textButtonOnClickListener implements OnClickListener{

@Override
public void onClick(View v) {
// TODO Auto-generated method stub
HttpDownloader httpDownloader=new HttpDownloader();
String lrc=httpDownloader.download("http://192.168.1.6:8080/forward/a/a.lrc");

System.out.println(lrc);
//System.out.println("abc");
}

}
class mp3ButtonOnClickListener implements OnClickListener{

@Override
public void onClick(View v) {
// TODO Auto-generated method stub
HttpDownloader httpDownloader=new HttpDownloader();
int result=httpDownloader.downFile("http://192.168.1.6:8080/forward/a/a.mp3","voa/","a.mp3");
System.out.println(result);
//System.out.println("123");
}

}
}

HttpDownloader.java;这么类没有继承Activity类;包名:package com.utils;package com.utils;

import java.io.BufferedReader;
import java.io.File;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;

public class HttpDownloader {
private URL url=null;
/**
* 根据URL下载文件,前提是这个文件当中的内容是文本,函数的返回值就是文件当中的内容对象
*/
public String download(String urlStr){
StringBuffer sb=new StringBuffer();
BufferedReader buffer=null;
try{
//创建一个URL文件
url=new URL(urlStr);
//创建一个Http连接
HttpURLConnection urlConn=(HttpURLConnection)url.openConnection();
//使用IO流读取数据
buffer=new BufferedReader(new InputStreamReader(urlConn.getInputStream()));
while(buffer.readLine()!=null){
sb.toString();
}
}catch(Exception e){
e.printStackTrace();
}finally{
try{
buffer.close();
}catch(Exception e){
e.printStackTrace();
}
}
return sb.toString();
}
/**
* 该函数返回整形。-1:代表下载文件出错;0:代表下载文件成功;1:代表文件已经下载
*/
public int downFile(String urlStr,String path,String fileName){
InputStream inputStream=null;
try{
FileUtils fileUtils=new FileUtils();
if(fileUtils.isFileExist(path+fileName)){
return 1;
}else{
inputStream=getInputStreamFromUrl(urlStr);
File resultFile=fileUtils.write2SDFromInput(path, fileName, inputStream);
if(resultFile==null){
return -1;
}
}
}catch(Exception e){
e.printStackTrace();
return -1;
}finally{
try{
inputStream.close();
}catch(Exception e){
e.printStackTrace();
}
}
return 0;
}
private InputStream getInputStreamFromUrl(String urlStr) {
// TODO Auto-generated method stub
return null;
}
}

这个类名为:FileUtils.java;该类也不是Activity类;包名为:package.com.utilspackage com.utils;

import java.io.File;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;

import android.os.Environment;

public class FileUtils {
private String SDPATH;
public String getSDPATH(){
return SDPATH;
}
public FileUtils(){
//得到当前外部存储设备目录
SDPATH=Environment.getExternalStorageState()+"/";
}
/**
* 在SD卡上创建文件;throws IOException
*/
public File creatSDFile(String fileName)throws IOException{
File file=new File(SDPATH+"/");
file.createNewFile();
return file;
}
/**
* 在SD卡上创建目录
*/
public File creatSDDir(String dirName){
File dir=new File(SDPATH+dirName);
dir.mkdir();
return dir;
}
/**
*判断SD卡上的文件夹是否存在
*/
public boolean isFileExist(String fileName){
File file=new File(SDPATH+fileName);
return file.exists();
}
/**
* 将一个inputStream里面的数据写入到SD卡中
*/
@SuppressWarnings("null")
public File write2SDFromInput(String path,String fileName,InputStream input){
File file=null;
OutputStream output=null;
try{
creatSDDir(path);
file=creatSDFile(path+fileName);
byte buffer[]=new byte[4*1024];
while((input.read(buffer))!=-1){
output.write(buffer);
}
output.flush();
}
catch(Exception e){
e.printStackTrace();
}
finally{
try{
output.close();
}catch(Exception e){
e.printStackTrace();
}
}
return file;
}
}

androidMainfest.xml配置文件为:<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.download"
android:versionCode="1"
android:versionName="1.0">
<application android:icon="@drawable/icon" android:label="@string/app_name">
<activity android:name=".Download"
android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>

</application>
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>


</manifest>
布局layout中的main.xml文件为:<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<Button
android:id="@+id/firstButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/text"
/>
<Button
android:id="@+id/secondtButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/mp3"
/>
</LinearLayout>

下面string.xml文件为:<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="hello">Hello World, Download!</string>
<string name="app_name">download</string>
<string name="text">下载文本文件</string>
<string name="mp3">下载mp3文件</string>
</resources>

其他的就没有修过了;运行结果为:
[2010-12-28 11:00:18 - DownLoad] Android Launch!
[2010-12-28 11:00:18 - DownLoad] adb is running normally.
[2010-12-28 11:00:18 - DownLoad] Performing com.download.Download activity launch
[2010-12-28 11:00:18 - DownLoad] Automatic Target Mode: using existing emulator 'emulator-5554' running compatible AVD 'and15'
[2010-12-28 11:00:18 - DownLoad] WARNING: Application does not specify an API level requirement!
[2010-12-28 11:00:18 - DownLoad] Device API version is 3 (Android 1.5)
[2010-12-28 11:00:18 - DownLoad] Uploading DownLoad.apk onto device 'emulator-5554'
[2010-12-28 11:00:18 - DownLoad] Installing DownLoad.apk...
[2010-12-28 11:00:22 - DownLoad] Success!
[2010-12-28 11:00:22 - DownLoad] Starting activity com.download.Download on device emulator-5554
[2010-12-28 11:00:24 - DownLoad] ActivityManager: Can't dispatch DDM chunk 46454154: no handler defined
[2010-12-28 11:00:24 - DownLoad] ActivityManager: Can't dispatch DDM chunk 4d505251: no handler defined
[2010-12-28 11:00:25 - DownLoad] ActivityManager: Starting: Intent { action=android.intent.action.MAIN categories={android.intent.category.LAUNCHER} comp={com.download/com.download.Download} }

输出结果总是打印出:-1(也就是下载文件出错,但我就是找不到该错误在哪里);我已经启动了Tomcat;下载了两个文件,
a.lrc放在Tomcat虚拟目录http://192.168.1.6:8080/forward/a/a.lrc;a.mp3放在:http://192.168.1.6:8080/forward/a/a.mp3;该两个文件在Tomcat启动发布后,在浏览器上均能运行找到;但结果就是显示下载出错,我实在是没辙了,
希望哪位大哥能帮帮我这个菜鸟啊!

...全文
151 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
myf408 2011-07-22
  • 打赏
  • 举报
回复
怎么解决的呀
wbc5677852 2011-04-08
  • 打赏
  • 举报
回复
大哥解决了这个问题吗?我也遇到了相同的问题啊

80,351

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧