从asset读取文件,写文件失败?

从asset读取文件,写入本地时,文件写入操作失败,报错

let assetsBuffer = FoundationContextHolder.getApplicationContext()?.resourceManager.getRawFileContentSync(inputPath);
console.log("resut " + assetsBuffer.length);

let tmpFile = fs.openSync(tmpPath,fs.OpenMode.READ_WRITE | fs.OpenMode.CREATE);
let resut = fs.writeSync(tmpFile.fd, assetsBuffer);
console.log("resut " + resut);
fs.closeSync(tmpFile);
阅读 562
1 个回答

原因是writeSync 中后一个参数是ArrayBuffer 类型,而第一行中的assetsBuffer参数是Uint8Array类型,需要转换:

let arrayBuffer: ArrayBuffer = new ArrayBuffer(8);
let uint8Array: Uint8Array = new Uint8Array(arrayBuffer);
let buffer: ArrayBuffer = uint8Array.buffer.slice(0);
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进