仅获取文件流并转换为字节数组:
import java.net.URL;
//仅获取文件流并转换为字节数组:
String url = "https://qyapi.weixin.qq.com/cgi-bin/media/get?access_token=xxxxxxxxxxxxxxxxxxx&media_id=xxxxxxxx";
InputStream in;
byte[] image = new byte[0];
try {
URL uri = new URL(url);
in = uri.openStream();
byte[] buf = new byte[1024];
while (in.read(buf) > 0) {
image = Utils.byteMerger(image, buf);
}
in.close();
} catch (IOException e) {
e.printStackTrace();
}
获取文件流并写入到指定文件,方法一:
import java.net.URL;
//获取文件流并写入到指定文件
String url = "https://qyapi.weixin.qq.com/cgi-bin/media/get?access_token=xxxxxxxxxxxxxxxxxxx&media_id=xxxxxxxx";
String filePathName = "C:\\Users\\Administrator\\Desktop\\827667.png";
try {
URL uri = new URL(url);
InputStream in = uri.openStream();
File file =new File(filePathName);
//判断文件或文件夹是否存在
if(file.exists()){
//不存在则创建改文件
file.createNewFile();
}
FileOutputStream fo = new FileOutputStream(file);
//byte[] image = new byte[0];
byte[] buf = new byte[1024];
int length = 0;
while ((length = in.read(buf)) > 0) {
fo.write(buf, 0, length);
//image = Utils.byteMerger(image, buf);
}
in.close();
fo.close();
//FileUtils.writeByteArrayToFile(new File(filePathName),image);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
获取文件流并写入到指定文件,方法二:
import org.apache.commons.io.FileUtils;
import java.net.URL;
//获取文件流并写入到指定文件
String url = "https://qyapi.weixin.qq.com/cgi-bin/media/get?access_token=xxxxxxxxxxxxxxxxxxx&media_id=xxxxxxxx";
String filePathName = "C:\\Users\\Administrator\\Desktop\\827667.png";
try {
URL uri = new URL(url);
InputStream in = uri.openStream();
File file =new File(filePathName);
//判断文件或文件夹是否存在
if(file.exists()){
//不存在则创建改文件
file.createNewFile();
}
byte[] image = new byte[0];
byte[] buf = new byte[1024];
while (in.read(buf) > 0) {
image = Utils.byteMerger(image, buf);
}
in.close();
FileUtils.writeByteArrayToFile(file,image);
} catch (IOException e) {
e.printStackTrace();
}
所用工具类:
//java 合并两个byte数组
public static byte[] byteMerger(byte[] byte_1, byte[] byte_2){
byte[] newbyte = new byte[byte_1.length+byte_2.length];
System.arraycopy(byte_1, 0, newbyte, 0, byte_1.length);
System.arraycopy(byte_2, 0, newbyte, byte_1.length, byte_2.length);
return newbyte;
}