问答邮件整理记录——HttpURLConnection下载网络文件
2013-10-06 15:53
351 查看
------------------------------------------------------------------------------
-----------这里是问题解决方案---------------------------------------------------
----------------------------------------------------------------------------------
你不知道的背景是:Android4.0之后,主线程内是不允许进行下载任务的(原因相信你也知道)
于是我们要做的就是把程序的onClickListener()做一下小的修改,把下载任务放到非主线程进行就行了
case R.id.button_show_data:
new Thread() {
public void run() {
HttpDownhelper httpDownhelper = new HttpDownhelper();
String myString = httpDownhelper.showdata("http://192.168.56.1:8080/mp3/nothing.txt");
System.out.println(myString);
};
}.start();
------------------------------------------------------------------------------
发件人:
发送时间: 2013-08-27 23:36
收件人:
主题: Freedown
朋友,你好!
我是一个Android初学者,最近学习遇到一点问题,自己实在无法解决,所以想请教下,希望你能不吝赐教,谢谢。
------------------------------------------------------------------------------
-----------这里是问题描述---------------------------------------------------
当我通过HttpURLConnection 来下载网络文本文件,并显示出来的时候,无法显示,我自己初步认为是读取网络文件的时候出错了,但是自己无法找出错误所在。。。
PS1.网络文件来源,我是通过tomcat解决的,使用其他程序可以成功调用相关文档没有问题。
PS2.已添加 <uses-permission android:name="android.permission.INTERNET"/>
PS3.附件是整个程序的源码
----------------------------------------------------------------------------------
------------------------------------------------------------------------------
-----------这里是程序源码,主要贴上来两部分源码---------------------------------------------------
------------第一部分是Activity,用来设定按钮监听,显示showdata()函数返回的String---------------
package com.example.freedown;
import charles.utils.HttpDownhelper;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.app.Activity;
public class Choose_list extends Activity implements OnClickListener{
Button showdataButton,downloadButton;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_choose_list);
showdataButton = (Button)findViewById(R.id.button_show_data);
showdataButton.setOnClickListener(this);
downloadButton = (Button)findViewById(R.id.button_download_data);
downloadButton.setOnClickListener(this);
}
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
switch (v.getId()) {
case R.id.button_download_data:
break;
case R.id.button_show_data:
HttpDownhelper httpDownhelper = new HttpDownhelper();
String myString = httpDownhelper.showdata("http://192.168.56.1:8080/mp3/nothing.txt");
System.out.println(myString);
break;
default:
break;
}
}
}
----------------------------------------------------------------------------------
------------第二部分是实现通过HttpURLConnection
读取网络文件的程序---------------
package charles.utils;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
public class HttpDownhelper {
private URL url = null;
public String showdata(String address) {
StringBuffer sb = new StringBuffer();
String lineString = null;
BufferedReader bufferedReader = null;
try {
url =new URL(address);
HttpURLConnection urlConnection = (HttpURLConnection)url
.openConnection();
bufferedReader = new BufferedReader(new InputStreamReader(urlConnection
.getInputStream()));
while ((lineString=bufferedReader.readLine())!=null){
sb.append(lineString);
}
} catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
}
finally{
try {
bufferedReader.close();
} catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
}
}
return sb.toString();
}
}
----------------------------------------------------------------------------------
这里是——你的朋友,猪小德!!
如果方便,麻烦你回复下表示你收到这封邮件!Thx!
-----------这里是问题解决方案---------------------------------------------------
----------------------------------------------------------------------------------
你不知道的背景是:Android4.0之后,主线程内是不允许进行下载任务的(原因相信你也知道)
于是我们要做的就是把程序的onClickListener()做一下小的修改,把下载任务放到非主线程进行就行了
case R.id.button_show_data:
new Thread() {
public void run() {
HttpDownhelper httpDownhelper = new HttpDownhelper();
String myString = httpDownhelper.showdata("http://192.168.56.1:8080/mp3/nothing.txt");
System.out.println(myString);
};
}.start();
------------------------------------------------------------------------------
发件人:
发送时间: 2013-08-27 23:36
收件人:
主题: Freedown
朋友,你好!
我是一个Android初学者,最近学习遇到一点问题,自己实在无法解决,所以想请教下,希望你能不吝赐教,谢谢。
------------------------------------------------------------------------------
-----------这里是问题描述---------------------------------------------------
当我通过HttpURLConnection 来下载网络文本文件,并显示出来的时候,无法显示,我自己初步认为是读取网络文件的时候出错了,但是自己无法找出错误所在。。。
PS1.网络文件来源,我是通过tomcat解决的,使用其他程序可以成功调用相关文档没有问题。
PS2.已添加 <uses-permission android:name="android.permission.INTERNET"/>
PS3.附件是整个程序的源码
----------------------------------------------------------------------------------
------------------------------------------------------------------------------
-----------这里是程序源码,主要贴上来两部分源码---------------------------------------------------
------------第一部分是Activity,用来设定按钮监听,显示showdata()函数返回的String---------------
package com.example.freedown;
import charles.utils.HttpDownhelper;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.app.Activity;
public class Choose_list extends Activity implements OnClickListener{
Button showdataButton,downloadButton;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_choose_list);
showdataButton = (Button)findViewById(R.id.button_show_data);
showdataButton.setOnClickListener(this);
downloadButton = (Button)findViewById(R.id.button_download_data);
downloadButton.setOnClickListener(this);
}
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
switch (v.getId()) {
case R.id.button_download_data:
break;
case R.id.button_show_data:
HttpDownhelper httpDownhelper = new HttpDownhelper();
String myString = httpDownhelper.showdata("http://192.168.56.1:8080/mp3/nothing.txt");
System.out.println(myString);
break;
default:
break;
}
}
}
----------------------------------------------------------------------------------
------------第二部分是实现通过HttpURLConnection
读取网络文件的程序---------------
package charles.utils;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
public class HttpDownhelper {
private URL url = null;
public String showdata(String address) {
StringBuffer sb = new StringBuffer();
String lineString = null;
BufferedReader bufferedReader = null;
try {
url =new URL(address);
HttpURLConnection urlConnection = (HttpURLConnection)url
.openConnection();
bufferedReader = new BufferedReader(new InputStreamReader(urlConnection
.getInputStream()));
while ((lineString=bufferedReader.readLine())!=null){
sb.append(lineString);
}
} catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
}
finally{
try {
bufferedReader.close();
} catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
}
}
return sb.toString();
}
}
----------------------------------------------------------------------------------
这里是——你的朋友,猪小德!!
如果方便,麻烦你回复下表示你收到这封邮件!Thx!
相关文章推荐
- java网络编程____httpURLConnection上传下载文件
- Android - HttpURLConnection下载网络文件,加载网络图片
- HttpURLConnection从网络下载文件
- 下载网络文件HttpURLConnection.getContentLength()大小为 0
- (4.3.2.14)下载网络文件HttpURLConnection.getContentLength()大小为 -1
- android网络编程之HttpUrlConnection的讲解--实现文件断点下载
- 下载网络文件HttpURLConnection.getContentLength()大小为 0
- 下载网络文件HttpURLConnection.getContentLength()大小为 -1
- 下载网络文件HttpURLConnection.getContentLength()大小为 -...
- 下载网络文件HttpURLConnection.getContentLength()大小为 -1
- 下载网络文件HttpURLConnection.getContentLength()大小为
- 下载网络文件HttpURLConnection.getContentLength()大小为 -1
- 使用HttpURLConnection下载网络图片并显示
- HttpURLConnection下载网络图片
- 【JAVA】通过HttpURLConnection 上传和下载文件
- HttpURLConnection实现文件下载,Service加Notification实现后台下载
- HttpURLConnection下载网络图片
- Android 网络应用重点———使用HttpURLConnection 上传文件
- Android学习之使用HttpURLConnection下载文件
- 运用java.net.HttpURLConnection实现java多线程下载文件