以图片地址下载图片

读取给定图片文件的内容,用FileInputStream

	public static byte[] mReaderPicture(String filePath) {
byte[] arr = null;
try {
File file = new File(filePath);
FileInputStream fReader = new FileInputStream(file);
arr = new byte[1024*100];
fReader.read(arr);
} catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
}
return arr;
}

根据byte数组,创建一张新图。

	public static void mWriterPicture(String newFileName,byte[] b){
try {
File file = new File(newFileName);
FileOutputStream fStream = new FileOutputStream(file);
fStream.write(b);
fStream.close();
System.out.println("图片创建成功 "+b.length);
} catch (Exception e) {
// TODO: handle exception
}
}

获取指定网址的图片,返回其byte[]

	public static byte[] mReaderPictureToInternet(String strUr1){
byte[] imgData = null;
URL url;
try {
url = new URL(strUr1);
URLConnection connection = url.openConnection();
int length = (int)connection.getContentLength();
InputStream is = connection.getInputStream();
if (length!=-1) {
imgData = new byte[length];
byte[] temp = new byte[500*1024];
int readLen = 0;
int destPos = 0;
while ((readLen = is.read(temp))>0) {
System.arraycopy(temp, 0, imgData, destPos, readLen);
//arraycopy(Object src, int srcPos, Object dest, int destPos, int length)
//从指定源数组中复制一个数组,复制从指定的位置开始,到目标数组的指定位置结束
destPos+=readLen;
}
}
return imgData;
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return imgData;
}

直接获取指定网址的图片

	public static void DownPictureToInternet(String filePath,String strUr1){
try {
URL url = new URL(strUr1);
InputStream fStream = url.openConnection().getInputStream();
int b = 0;
FileOutputStream fos = new FileOutputStream(new File(filePath));
while ((b=fStream.read())!=-1) {
fos.write(b);
}
fStream.close();
fos.close();
} catch (Exception e) {
e.printStackTrace();
}
}

应用:

	public static void main(String[] args) {
mWriterPicture("test/1.jpg", mReaderPicture("res/me.jpg"));
mWriterPicture("test/2.jpg", mReaderPictureToInternet(
"http://pic2.desk.chinaz.com/file/201209/7/qinghimingyue4_p.jpg"));
DownPictureToInternet("test/下载.jpg",
"http://img3.100bt.com/upload/ttq/20130205/1360069663700.jpg");
}

源码下载:



Java学习笔记——IO操作之以图片地址下载图片的更多相关文章

  1. Java学习笔记——IO操作之对象序列化及反序列化

    对象序列化的概念 对象序列化使得一个程序可以把一个完整的对象写到一个字节流里面:其逆过程则是从一个字节流里面读出一个事先存储在里面的完整的对象,称为对象的反序列化. 将一个对象保存到永久存储设备上称为 ...

  2. Java学习笔记-IO

    IO(Input Output)流,用来处理设备之间的数据传输 IO IO概述 Java对数据的操作是通过流的方式 Java用于操作流的对象都在IO包中 流按操作数据分为两种:字节流与字符流 流按流向 ...

  3. java学习笔记 --- IO(2)

    IO流的分类:  流向:  输入流  读取数据  输出流 写出数据  数据类型: 字节流 字节输入流  读取数据 InputStream 字节输出流  写出数据 OutputStream 字符流 字符 ...

  4. C#之通过图片地址下载图片

    因为项目上需要加载在线卫星云图,因此写了这个功能来把卫星云图下载的本地,在这里记录一下: string imageUrl=“http://image.nmc.cn/product/2018/08/06 ...

  5. Java 学习笔记 IO流与File操作

    可能你只想简单的使用,暂时不想了解太多的知识,那么请看这里,了解一下如何读文件,写文件 读文件示例代码 File file = new File("D:\\test\\t.txt" ...

  6. java学习笔记--IO流

    第十二章大纲: I/O input/output 输入/输出 一.创建文件,借助File类来实现 file.createNewFile() : 创建文件 file.exists() : 判断文件是否存 ...

  7. java学习笔记IO之字节输入输出流

    IO字节输入输出流 OutputStream:字节输出流 该抽象类是所有字节输出流的超类: 定义了一些共性的成员方法: 1.写入一个字节 void write(int b);//b表示字节 2.写入字 ...

  8. java学习笔记IO之File类

    File类总结 p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Times } p.p2 { margin: 0.0px 0.0px 0.0p ...

  9. java学习笔记—第三方操作数据库包专门接收DataSource-dbutils (30)

    Dbutils 操作数据第三方包.依赖数据源DataSource(DBCP|C3p0). QueryRunner – 接收DataSource|Connection,查询数据删除修改操作.返回结果. ...

随机推荐

  1. 003.SSH密钥对登陆

    一 需求背景 master:172.24.8.30 client-01:172.24.8.31 client-01:172.24.8.32 client-01:172.24.8.33 在master上 ...

  2. PMK数据生成工具airolib-ng

    PMK数据生成工具airolib-ng   PMK(Pairwise Master Key)是根据ESSID和无线密钥生成的哈希值,用于WPA/WPA2身份认证.在WPA/WPA2暴力破解中,需要大量 ...

  3. 线上zk节点报org.apache.zookeeper.server.NIOServerCnxnFactory.run(NIOServerCnxnFactory.java:187) at java.lang.Thread.run(libgcj.so.10)

    线上zk做配置管理,最近突然发现两个节点一直在刷下边 java.nio.channels.CancelledKeyException    at gnu.java.nio.SelectionKeyIm ...

  4. 【WIN10】移植opencc到WIN10-UWP,實現自己的繁簡轉換工具

    花了週末兩天時間,將opencc移植成WIN10-UWP可用的庫,並完成自己的繁簡轉換工具. 我的繁簡轉換工具下載地址為:https://www.microsoft.com/store/apps/9n ...

  5. 【BZOJ 3028】 3028: 食物 (生成函数)

    3028: 食物 Time Limit: 3 Sec  Memory Limit: 128 MBSubmit: 569  Solved: 382 Description 明明这次又要出去旅游了,和上次 ...

  6. UOJ.26.[IOI2014]Game(交互 思路)

    题目链接 \(Description\) 有一张\(n\)个点的图.M每次询问\((u,v)\),你需要回答图中\((u,v)\)间是否有边.如果M可以用\(<n(n-1)/2\)次询问确定图中 ...

  7. Atcoder Tenka1 Programmer Contest 2019 题解

    link 题面真简洁 qaq C Stones 最终一定是连续一段 . 加上连续一段 # .直接枚举断点记录前缀和统计即可. #include<bits/stdc++.h> #define ...

  8. tkinter的GUI设计:界面与逻辑分离(四)-- 与 matplotlib 结合

    有些场合,我们需要对数据可视化.单是靠 tkinter 难度太大,而且做出来的效果不一定理想. 此时,将 tkinter 与 matplotlib 结合,是最好的选择. 知识点: 将 tkinter ...

  9. [HDU5713]K个联通块

    [HDU5713]K个联通块 题目大意: 有一张\(n(n\le14)\)个点,\(m\)条边无重边的无向图,求有多少个边集,使得删掉边集里的边后,图里恰好有\(k\)个连通块. 思路: 一个显然的动 ...

  10. bzoj 4004 向量拟阵

    题解RT. eps = 1e-10 WrongAnswer eps = 1e-5 Accepted /************************************************* ...