HarmonyOS 如何将文件流保存到文件?

H5调用接口获取文件流,如何将文件流写入文件,H5可以写入文件吗?

阅读 571
1 个回答

base64String替换成接口返回的file:base64转的string,通过Device File Browser按照路径data/app/el2/100/base/包名/files目录下查看保存的文件。

示例参考:

import fs from '@ohos.file.fs'
import { common } from '@kit.AbilityKit';
import { BusinessError } from '@ohos.base';

@Entry
@Component
struct WriteBase64DataPage {
  @State message: string = 'Hello World';
  @State base64String: string = '';

  writeBase64DataToFile(base64String: string, path: string): void {
    let file = fs.openSync(path, fs.OpenMode.READ_WRITE | fs.OpenMode.CREATE);
    fs.write(file.fd, base64String, (error: BusinessError) => {
      if (error) {
        console.error("write failed", error);
      } else {
        console.log("write success");
      }
    });
  }

  build() {
    RelativeContainer() {
      Text(this.message)
        .id('WriteBase64DataPageHelloWorld')
        .fontSize(50)
        .fontWeight(FontWeight.Bold)
        .alignRules({
          center: { anchor: '__container__', align: VerticalAlign.Center },
          middle: { anchor: '__container__', align: HorizontalAlign.Center }
        })
        .onClick(() => {
          let context = getContext(this) as common.UIAbilityContext;
          let applicationContext = context.getApplicationContext();
          let pathDir = applicationContext.filesDir;
          let filePath = pathDir + "/test.txt";
          this.writeBase64DataToFile(this.base64String, filePath)
        })
    }
    .height('100%')
    .width('100%')
  }
}