autojs 下载文件带百分比

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); //读取
}

 

赞 (0)