源代码如下:
这个是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启动发布后,在浏览器上均能运行找到;但结果就是显示下载出错,我实在是没辙了,
希望哪位大哥能帮帮我这个菜鸟啊!