文档章节

URL下载数据到其他工具类,不存到其他地方用内存流

f
 flyqilong
发布于 2016/01/03 16:01
字数 308
阅读 7
收藏 0
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.UnsupportedEncodingException;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
public class Utils {
       //封装成一个工具类用来下载数据
public static byte[] download(String path){
    try {
URL url=new URL(path);
HttpURLConnection connection=(HttpURLConnection) url.openConnection();
connection.setRequestMethod("GET");
connection.connect();
int code=connection.getResponseCode();//200
if(code==HttpURLConnection.HTTP_OK);{
// 读取流。
InputStream is=connection.getInputStream();
//内存流
ByteArrayOutputStream bos=new ByteArrayOutputStream();
byte[]a=new byte[1024];
int len=-1;
while((len=is.read(a))!=-1){
bos.write(a, 0, len);
}
is.close();
return bos.toByteArray();
}
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return null;
}
// 将指定网址的图片下载,并且写到文件中,文件名跟网络上的名字一样。
public static void writeToFile(String path,String desPath){
//建立一个数组接收在服务器传过来的数据
byte[]a=download(path);
if(a!=null){
String fileName=path.substring(path.lastIndexOf('/'));
File file=new File(desPath,fileName);
FileOutputStream fos;
try {
fos = new FileOutputStream(file);//注意这里没有判断文件夹不存在的情况,如果文件夹不在会出现错误
fos.write(a);
fos.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}
// 根据网址得到json字符串。
public static String getJson(String path) {
byte[] b = download(path);
String str = null;
try {
if (b != null)
str = new String(b, "utf-8");
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
return str;
}
}

© 著作权归作者所有

f
粉丝 3
博文 93
码字总数 53900
作品 0
Android工程师
私信 提问
Java 实现文件随机读写-RandomAccessFile

RandomAccessFile是Java中输入,输出流体系中功能最丰富的文件内容访问类,它提供很多方法来操作文件,包括读写支持,与普通的IO流相比,它最大的特别之处就是支持任意访问的方式,程序可以直...

17099933344
2017/07/19
0
0
.net mvc + layui做图片上传(二)—— 使用流上传和下载图片

摘要:上篇文章写到一种上传图片的方法,其中提到那种方法的局限性,就是上传的文件只能保存在本项目目录下,在其他目录中访问不到该文件。这与浏览器的安全性机制有关,浏览器不允许用户用任...

CherishTheYouth
01/28
0
0
Android Bitmap的加载和Cache

导语 主要介绍如何高效地加载一个Bitmap,Android中常用的缓存策略,如何优化列表的卡顿。 主要内容 Bitmap的高效加载 Android中的缓存策略 ImageLoader的使用 具体内容 Bitmap的高效加载 先...

一个有故事的程序员
04/23
0
0
IOS——简化Web服务的连接

给NSURLConnection包一层更简单的接口,就可以减少每次的下载工作,省去大量的重复。 XYConnection继承自NSURLConnection,这个类管理临时的数据结构,并管理通常由控制器对象负责的进度,这...

卢西安
2013/06/01
0
0
Java IO的RandomAccessFile的使用

该文转自http://blog.csdn.net/czplplp_900725/article/details/37809579 现有如下的一个需求,向已存在1G数据的txt文本里末尾追加一行文字,内容如下“Lucene是一款非常优秀的全文检索库”。...

香蕉拿铁
2016/09/06
0
0

没有更多内容

加载失败,请刷新页面

加载更多

etcd 在超大规模数据场景下的性能优化

作者 | 阿里云智能事业部高级开发工程师 陈星宇(宇慕) 概述 etcd是一个开源的分布式的kv存储系统, 最近刚被cncf列为沙箱孵化项目。etcd的应用场景很广,很多地方都用到了它,例如kubernete...

zhaowei121
23分钟前
2
0
MYSQL主从介绍

MYSQL软件概念 MYSQL是一款数据库,关系型数据库系统; MYSQL主要用于存放:员工姓名、身份证ID、商城订单及金额、销售业绩及报告,学生考试成绩、网站帖子、论坛用户信息等; MYSQL在WEB架构...

寰宇01
26分钟前
2
0
org.apache.cxf.interceptor.Fault: null

出现这个异常的原因:json字符串为null 所以会出现这个错误。需要加上条件判断。 如果不是这个原因,可以参考: https://blog.csdn.net/rshw123456/article/details/8001677...

嘿嘿嘿IT
26分钟前
1
0
gradle控制so库的输出位置

gradle.taskGraph.beforeTask { task -> String abi = "lib/armeabi/" def TASK_NAME = "transformNativeLibsWithStripDebugSymbolFor" String buildType = "debug" //S......

Gemini-Lin
27分钟前
3
0
AndroidL 开机展示Keyguard锁屏机制初探

目录 目录 锁屏时序图 开机启动到PhoneWindowManager的systemReady方法 锁屏加载流程 PhoneWindowManager KeyguardServiceDelegate KeyguardServiceWrapper KeyguardService KeyguardViewMe......

天王盖地虎626
30分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部