HarmonyOS 鸿蒙Next 文件保存demo

发布于 1周前 作者 yuanlaile 来自 鸿蒙OS

HarmonyOS 鸿蒙Next 文件保存demo

需要文件保存demo

2 回复

HarmonyOS 鸿蒙Next 文件保存demo示例代码如下:

import { BusinessError } from '[@ohos](/user/ohos).base';

import picker from '[@ohos](/user/ohos).file.picker';

async function example10() {

  try {

    let documentSaveOptions = new picker.DocumentSaveOptions();

    documentSaveOptions.newFileNames = ['DocumentViewPicker01.txt'];

    let documentPicker = new picker.DocumentViewPicker();

    documentPicker.save(documentSaveOptions).then((documentSaveResult: Array<string>) => {

      console.info('DocumentViewPicker.save successfully, documentSaveResult uri: ' + JSON.stringify(documentSaveResult));

    }).catch((err: BusinessError) => {

      console.error('DocumentViewPicker.save failed with err: ' + JSON.stringify(err));

    });

  } catch (error) {

    let err: BusinessError = error as BusinessError;

    console.error('DocumentViewPicker failed with err: ' + JSON.stringify(err));

  }

}

async function example07() {

  try {

    let documentSelectOptions = new picker.DocumentSelectOptions();

    let documentPicker = new picker.DocumentViewPicker();

    documentPicker.select(documentSelectOptions).then((documentSelectResult: Array<string>) => {

      console.info('DocumentViewPicker.select successfully, documentSelectResult uri: ' + JSON.stringify(documentSelectResult));

    }).catch((err: BusinessError) => {

      console.error('DocumentViewPicker.select failed with err: ' + JSON.stringify(err));

    });

  } catch (error) {

    let err: BusinessError = error as BusinessError;

    console.error('DocumentViewPicker failed with err: ' + JSON.stringify(err));

  }

}

[@Entry](/user/Entry)

[@Component](/user/Component)

struct DocumentViewPickerPage {

  [@State](/user/State) message: string = 'Hello World';

  build() {

    Column() {

      Text(this.message)

        .id('HelloWorld')

        .fontSize(50)

        .fontWeight(FontWeight.Bold)

        .alignRules({

          center: { anchor: '__container__', align: VerticalAlign.Center },

          middle: { anchor: '__container__', align: HorizontalAlign.Center }

        })

      Button() {

        Text('Save')

      }

      .type(ButtonType.Capsule)

      .height(40)

      .width(200)

      .margin({top: 20})

      .onClick(() => {

        example10()

      })

      Button() {

        Text('Select')

      }

      .type(ButtonType.Capsule)

      .height(40)

      .width(200)

      .margin({top: 20})

      .onClick(() => {

        example07()

      })

    }

    .height('100%')

    .width('100%')

    .justifyContent(FlexAlign.Center)

  }

}

详细情况和其他示例请参考文档:https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V5/js-apis-file-picker-V5#documentviewpicker

更多关于HarmonyOS 鸿蒙Next 文件保存demo的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


在HarmonyOS(鸿蒙)系统中,实现文件保存功能通常涉及到访问存储权限、选择存储路径以及文件写入操作。以下是一个简要的HarmonyOS文件保存Demo示例,不涉及具体代码实现细节,但概述了主要步骤:

  1. 权限声明:在config.json文件中声明必要的权限,如读写外部存储权限。

  2. 获取权限:在运行时通过权限管理API请求用户授予读写外部存储的权限。

  3. 选择存储路径:利用系统提供的文件选择器API,让用户选择或指定文件保存的路径。

  4. 文件写入

    • 创建文件对象。
    • 使用文件输出流(FileOutputStream)或相关API将数据写入文件。
    • 确保在写入完成后关闭输出流以释放资源。
  5. 错误处理:添加必要的错误处理逻辑,以应对文件创建失败、写入失败等异常情况。

  6. 通知用户:文件保存成功后,通过UI组件(如Toast消息)通知用户。

请注意,上述步骤是基于HarmonyOS系统特性的一般性描述。实际开发中,开发者需参考HarmonyOS官方文档,使用对应的API和组件来实现具体的文件保存功能。

如果问题依旧没法解决请联系官网客服,官网地址是:https://www.itying.com/category-93-b0.html

回到顶部