HarmonyOS fs读取本地文件

ide4.1,api11。fs读取本地文件,while循环后怎么取出完整的文件buffer或完整的转换文件?

参考该文档实现:

https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/app-file-access-V5

HarmonyOS
17h前
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
shlp

可以在每次读取之后使用@ohos.buffer (Buffer)中的Buffer对象存储本次读取的值,在全部读取完成后,使用buffer.concat()合并所有Buffer的内容,demo参考如下:

async readLocalFileWithStream() {
  try {
    // 存储每次读取的结果
    let buffers: buffer.Buffer[] = [];
    // 打开文件流
    let inputStream = fs.createStreamSync(this.temp1Path, 'r+');
    // 以流的形式读取源文件内容
    let bufSize = 4096;
    let readSize = 0;
    let buf = new ArrayBuffer(bufSize);
    class Option {
      public offset: number = 0;
      public length: number = bufSize;
    }
    let option = new Option();
    option.offset = readSize;
    let readLen = await inputStream.read(buf, option);
    // 存储当前读取结果
    buffers.push(buffer.from(buf.slice(0, readLen)))
    readSize += readLen;
    while (readLen > 0) {
      option.offset = readSize;
      readLen = await inputStream.read(buf, option);
      // 存储当前读取结果
      buffers.push(buffer.from(buf.slice(0, readLen)))
      readSize += readLen;
    }
    // 关闭文件流
    inputStream.closeSync();
    // 合并内容
    let finalBuf: ArrayBuffer = buffer.concat(buffers).buffer
    console.info(`final ArrayBuffer byteLength is ${finalBuf.byteLength}}`)
  } catch (error) {
    let err = error as BusinessError;
    console.error(`readLocalFileWithStream failed, code is ${err.code},message is ${err.message}`);
  }
}
分享
微博
QQ
微信
回复
15h前
相关问题
HarmonyOS fs模块读取文件的问题
594浏览 • 1回复 待解决
如何读取本地JSON文件
2375浏览 • 1回复 待解决
HarmonyOS 如何读取本地json文件
80浏览 • 1回复 待解决
HarmonyOS 读取本地RawFile文件失败
45浏览 • 1回复 待解决
HarmonyOS ArkTS如何读取本地json文件
50浏览 • 1回复 待解决
stageMode下如何读取本地json 文件
3644浏览 • 1回复 待解决
读取本地json 文件提示权限拒绝
3265浏览 • 1回复 待解决
怎么读取本地音频文件列表?
6371浏览 • 1回复 待解决
Harmony 如何读取本地视频文件路径?
14828浏览 • 2回复 待解决
ArkTS如何读取本地json?
7209浏览 • 1回复 待解决
HarmonyOS如何读取文件
658浏览 • 1回复 待解决
HarmonyOS 无法读取文件
70浏览 • 1回复 待解决
如何读取本地/预制数据库?
1232浏览 • 1回复 待解决
HarmonyOS Import本地文件
76浏览 • 1回复 待解决
HarmonyOS fs中获取文件扩展名的方式
71浏览 • 1回复 待解决
fs.unlink接口无法删除文件
1893浏览 • 1回复 待解决