autojs 下载文件带百分比
我不觉得这个功能有什么用,很多客户其实看重还是功能实用性
/**
* 作者: 家
* 功能: 显示下载文件百分比
*/
// importClass("javax.swing.*")
importClass("java.io.FileOutputStream")
importClass("java.io.IOException")
importClass("java.io.InputStream")
importClass("java.net.MalformedURLException")
importClass("java.net.URL")
importClass("java.net.URLConnection")
importClass("java.util.ArrayList")
var myPath = "/sdcard/111aa/abc.js";
log('im alive')
var myUrl = 'http://bmob-cdn-11368.b0.upaiyun.com/2019/03/15/e7109b1040cf97db8008992f5fbec664.test'
var url = new URL(myUrl);
var conn = url.openConnection(); //URLConnection
var inStream = conn.getInputStream(); //InputStream
var fs = new FileOutputStream(myPath); //FileOutputStream
var connLength = conn.getContentLength(); //int
var startTime = java.lang.System.currentTimeMillis();
var buffer = util.java.array('byte', 1024); //byte[]
// buffer = new byte[1204]; //byte[]
var prevTime = java.lang.System.currentTimeMillis();
var bytePrev = 0; //前一次记录的文件大小
var byteSum = 0; //总共读取的文件大小
var byteRead; //每次读取的byte数
log('要下载的文件大小=')
log(connLength)
threads.start(
function () {
while (1) {
var 当前写入的文件大小 = byteSum
var 百分比 = 当前写入的文件大小 / connLength * 100
var 要显示的内容 = util.format('下载了%s%', 百分比)
log(要显示的内容)
if (当前写入的文件大小 >= connLength) {
break;
}
sleep(1000)
}
}
)
while ((byteRead = inStream.read(buffer)) != -1) {
byteSum += byteRead;
//当前时间
var currentTime = java.lang.System.currentTimeMillis();
fs.write(buffer, 0, byteRead); //读取
}

老马黑科技


