昨天有写到 下载证书用到 下载文件,保存本地并获取文件流;但是经过考虑感觉 自己的目前主要是获取下载的内容的输入流;那这样的话就不用保存文件;这一步了;
所以就有了简单的调整 也就是 :获取下载文件 流 -->直接读取流 就OK了;
1:网络下载:
public static InputStream getinputStram(String URL_Path) {// 通過 流 獲取到圖片資源
InputStream inputStream = null;
try {
URL url = new URL(URL_Path);
if (url != null) {
HttpURLConnection httpURLConnection = (HttpURLConnection) url
.openConnection();// 打开网络连接
httpURLConnection.setRequestMethod("GET");
httpURLConnection.setConnectTimeout(3000);
httpURLConnection.setDoInput(true);
int responseCode = httpURLConnection.getResponseCode();// 获取连接返回的
// 标识码
if (responseCode == 200) {// 表示连接成功
inputStream = httpURLConnection.getInputStream();
}
}
} catch (Exception e) {
// TODO: handle exception
}
return inputStream;
}
2:获取下载的文件流:
InputStream inputStream ;
new Thread(){
@Override
public void run() {
super.run();
inputStream = getinputStram(URL_Path1);// 在線程中獲取到 數據 在Handler 中更新數據
has.sendEmptyMessage(1);
}
}.start();
3:通过Hander更新UI数据;对流进行处理操作;
//LS:添加的 获取证书的输出流数据
Handler has = new Handler() {
public void handleMessage(Message msg) {
switch (msg.what) {
case 1:
//在这一步 对获取的文件流进行操作 就可以了;inputStream
//下面是个处理的例子:读取流 转成String ;
BufferedReader br = new BufferedReader(new InputStreamReader(inputStream));
StringBuilder sb = new StringBuilder();
String readline =null ;
try {
while ((readline = br.readLine()) != null) {
sb.append(readline);
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
Log.e("filessssss---:", "filesssss---:" + sb.toString());
System.out.println("result"+sb.toString());
break;
default:
break;
}
};
};
4:OK 很简单 ;但是 没做过笔记;以后无论问题大小;尽量做笔记;
注意:、
A:网络操作一般都会用到线程;(尽量异步操作;不过具体视情况而定。)
B:更新UI 一般都要用到 Handler,对数据进行更新或操作。
C:记得添加网络权限。