HarmonyOS鸿蒙Next中如何创建和写入文件

HarmonyOS鸿蒙Next中如何创建和写入文件 问题描述:如何在应用私有目录下创建一个txt文件并写入内容?

3 回复

回答内容:使用@ohos.file.fs模块。

示例代码:

import fs from '[@ohos](/user/ohos).file.fs';
import showToast from '../utils/ToastUtils';
import common from '[@ohos](/user/ohos).app.ability.common';

/**
 * @author J.query
 * @date 2025/12/23 11:17
 * @email j-query@foxmail.com
 * Description:
 */

@Entry
@Component
struct FileWriteDemo {
  private context: common.UIAbilityContext = getContext() as common.UIAbilityContext;

  async writeFile() {
    // 获取应用私有目录
    // 在UIAbility中调用
    let privateDir: string = this.context.filesDir;
    console.info(`应用私有目录路径: ${privateDir}`);
    let filePath = `${privateDir}/test.txt`;

    try {
      // 打开文件 (不存在则创建)
      let file = fs.openSync(filePath, fs.OpenMode.READ_ONLY);

      // 写入内容
      let text = 'Hello HarmonyOS API 12!\nCurrent Time: ' + new Date().toISOString();
      let writeLen = fs.writeSync(file.fd, text);

      fs.closeSync(file);
      showToast( `写入成功, 长度: ${writeLen}` );
    } catch (err) {
      showToast( '写入失败' );
    }
  }

  build() {
    Button('写入文件')
      .onClick(() => this.writeFile())
      .margin(20)
  }
}

cke_1062.png

更多关于HarmonyOS鸿蒙Next中如何创建和写入文件的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


在HarmonyOS Next中,使用@ohos.file.fs模块创建和写入文件。首先导入模块:import fs from '@ohos.file.fs';。创建文件使用fs.openSync(path, fs.OpenMode.CREATE | fs.OpenMode.READ_WRITE),其中path为文件路径。写入内容使用fs.writeSync(fd, content)fd为文件描述符,content为写入的字符串或ArrayBuffer。操作完成后,调用fs.closeSync(fd)关闭文件。

在HarmonyOS Next中,您可以使用@ohos.file.fs模块在应用私有目录下创建和写入txt文件。以下是核心步骤:

  1. 获取应用私有目录路径: 使用context获取应用文件目录,这是应用的私有存储区域。

    import { context } from '@ohos.abilityAccessCtrl';
    import { BusinessError } from '@ohos.base';
    import fs from '@ohos.file.fs';
    
    // 获取应用上下文,例如在EntryAbility中
    let context = getContext(this);
    // 获取应用私有文件目录路径
    let filesDir = context.filesDir;
    
  2. 拼接目标文件路径: 在私有目录下指定文件名。

    let filePath = filesDir + '/example.txt';
    
  3. 创建并写入文件: 使用fs.openSync()fs.writeSync()fs.closeSync()同步API进行文件操作。

    try {
      // 以创建、读写方式打开文件(如果文件不存在则创建)
      let file = fs.openSync(filePath, fs.OpenMode.CREATE | fs.OpenMode.READ_WRITE);
      // 准备要写入的内容
      let content: string = "Hello, HarmonyOS Next!";
      // 将内容写入文件
      fs.writeSync(file.fd, content);
      // 关闭文件,释放资源
      fs.closeSync(file);
      console.info('File created and written successfully at: ' + filePath);
    } catch (error) {
      let err: BusinessError = error as BusinessError;
      console.error('Failed to create or write file. Error code: ' + err.code + ', message: ' + err.message);
    }
    

关键说明

  • 权限:应用私有目录(filesDir)无需额外声明权限即可访问。
  • API选择:示例使用了同步API(后缀带Sync),操作简单直接。对于需要避免阻塞主线程的场景,可以考虑使用对应的异步API(如fs.open(), fs.write())。
  • 打开模式fs.OpenMode.CREATE | fs.OpenMode.READ_WRITE 确保了如果文件不存在则创建,存在则打开并允许读写。
  • 错误处理:务必使用try-catch块捕获可能的操作异常(如存储空间不足)。

按照以上步骤,即可在HarmonyOS Next应用内完成文件的创建与写入。

回到顶部