java makedir用法_Java Files.makeDir方法代码示例
import org.nutz.lang.Files; //导入方法依赖的package包/类
protected void download(String openid, String media_id, String url) {
File f = new File(mediaPath(openid, media_id));
if (f.exists() && f.length() > 1) {
log.info("Media aready exit > " + media_id);
return;
}
for (int i = 0; i < 3; i++) {
InputStream in = null;
OutputStream out = null;
File tmp = null;
try {
if (Strings.isBlank(url)) {
url = "http://file.api.weixin.qq.com/cgi-bin/media/get?access_token=" + wxctx.getAPI(openid).getAccessToken() + "&media_id=" + media_id;
}
Response resp = Http.get(url, 60*1000);
if (resp.isOK()) {
in = resp.getStream();
tmp = File.createTempFile("nutzwx_media", ".media");
out = new FileOutputStream(tmp);
Streams.writeAndClose(out, in);
// 检查一下是不是报错
if (tmp.length() < 128) {
byte[] data = Files.readBytes(f);
if (data[0] == '{') { // 看上去是个json,悲催了...
// 多媒体文件怎么可能是{开头,抛错吧
throw new IllegalArgumentException("mediaId="+media_id+ ","+new String(data));
//try {
//NutMap map = Json.fromJson(NutMap.class, new String(data));
//if (map.containsKey("errcode") && map.getInt("errcode") != 0) {
//log.warn("download media fail >> " + new String(data));
//}
//} catch (Throwable e) {
//log.debug("not a json? ok", e);
//}
}
}
if (f.exists())
f.delete();
Files.makeDir(f.getParentFile());
tmp.renameTo(f);
WxMedia media = new WxMedia(media_id, resp.getHeader().getInt("Content-Length", 0), resp.getHeader().get("Content-Type"));
Json.toJsonFile(new File(f.getAbsolutePath()+".info"), media);
log.debug("media download success mediaId="+media_id);
break;
} else {
log.debugf("download %s fail, code=%s, content=%s", media_id, resp.getStatus(), resp.getContent());
}
} catch (Throwable e) {
log.infof("download %s fail", media_id, e);
} finally {
Streams.safeClose(in);
Streams.safeClose(out);
if (tmp != null)
tmp.delete();
}
}
}
java makedir用法_Java Files.makeDir方法代码示例相关推荐
- java secretkey用法_Java SecretKeyFactory.generateSecret方法代码示例
本文整理汇总了Java中javax.crypto.SecretKeyFactory.generateSecret方法的典型用法代码示例.如果您正苦于以下问题:Java SecretKeyFactory ...
- java polygon 用法_Java Polygon.getBounds方法代码示例
import java.awt.Polygon; //导入方法依赖的package包/类 private SelectionShape translatePointsToRealSize(Select ...
- java shape用法_Java PShape.scale方法代码示例
import processing.core.PShape; //导入方法依赖的package包/类 public void updateAnim(){ if(pg_src_small == null ...
- java gettext用法_Java Context.getText方法代码示例
import android.content.Context; //导入方法依赖的package包/类 /** * Song Details * * @param context * @param t ...
- java listview用法_Java ListView.setMultiChoiceModeListener方法代码示例
import android.widget.ListView; //导入方法依赖的package包/类 @Override public void onActivityCreated(@Nullabl ...
- java gettext用法_Java Label.getText方法代码示例
import javafx.scene.control.Label; //导入方法依赖的package包/类 private void initVBox(){ ClassNode node = (Cl ...
- java connection用法_Java Connection.close方法代码示例
import sun.rmi.transport.Connection; //导入方法依赖的package包/类 /** * handleMessages decodes transport oper ...
- java settext用法_Java JFormattedTextField.setText方法代码示例
import javax.swing.JFormattedTextField; //导入方法依赖的package包/类 /** * Creates a {@link JFormattedTextFie ...
- java args包_Java Args.positive方法代码示例
import org.apache.http.util.Args; //导入方法依赖的package包/类 /** * Creates new instance of BHttpConnectionB ...
最新文章
- weblogic 故障转移
- Python视频编辑库:MoviePy
- semiautomatic annotated tools
- 《设计师要懂心理学》-第四章-人如何思考
- java gc log调优_Java 开启 gc 日志
- 剑指offer:63-66记录
- hdu 5925 搜索
- edwardcmh@cnblogs
- 江西瑞金计算机网络设计工资多少,瑞金java工资一般多少
- 模块化配电系统在高密度数据中心的应用
- linux 命令安装 wine,如何在Ubuntu 18.04 LTS上安装Wine
- MySQL的存储函数与存储过程的区别
- 外资公司章程标准范本
- mac倾倒废纸篓提示文件正在使用中的一种解决办法
- 《一次与IP MTU、TCP MSS导致SSL协商失败的案例》—那些年踩过的坑(二)
- 基于java+springboot+mysql的中小型超市进销存管理系统
- 云服务器怎么连,云主机连接操作步骤是怎样的?
- 计算机网络地址块例题,计算机网络习题计算机络习题.ppt
- python装饰器带参数函数二阶导数公式_机器学习【二】单变量线性回归
- ddr3ip核心_XILINX DDR3 IP核使用教程