HarmonyOS 鸿蒙Next 需要一个保存用户文件的demo工程

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

HarmonyOS 鸿蒙Next 需要一个保存用户文件的demo工程

HarmonyOS 需要一个保存用户文件的demo工程?

2 回复
import { BusinessError } from '@ohos.base';
import picker from '@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
@Component
struct DocumentViewPickerPage {
  @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)
  }
}

针对您提到的HarmonyOS鸿蒙Next系统需要一个保存用户文件的demo工程的需求,以下是一个简要示例说明,旨在帮助您快速上手实现用户文件的保存功能。

在HarmonyOS中,您可以使用文件存储API来保存用户文件。以下是一个简单的代码示例,展示了如何在鸿蒙应用中保存一个文本文件:

  1. 权限声明:在config.json中声明文件读写权限。
"module": {
    "package": "your.package.name",
    "reqPermissions": [
        "ohos.permission.READ_EXTERNAL_STORAGE",
        "ohos.permission.WRITE_EXTERNAL_STORAGE"
    ]
}
  1. 文件保存代码
FileIoManager fileIoManager = FileIoManager.getInstance();
String filePath = "/data/user/your_app_id/files/example.txt";
String content = "Hello, HarmonyOS!";

try (FileOutputStream fos = fileIoManager.openFile(filePath, FileIoFlag.CREATE | FileIoFlag.TRUNC_EXISTING_WRITE)) {
    fos.write(content.getBytes());
} catch (IOException e) {
    e.printStackTrace();
}

上述代码将在应用的私有文件目录下创建一个名为example.txt的文件,并写入内容"Hello, HarmonyOS!"。

请注意,这只是一个基础示例,实际应用中可能需要更复杂的错误处理和文件路径管理。如果问题依旧没法解决请联系官网客服,官网地址是:https://www.itying.com/category-93-b0.html

回到顶部