0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

鸿蒙原OS开发实例:【ArkTS类库单次I/O任务开发】

jf_46214456 来源:jf_46214456 作者:jf_46214456 2024-04-02 21:03 次阅读

Promise和async/await提供异步并发能力,适用于单次I/O任务的场景开发,本文以使用异步进行单次文件写入为例来提供指导。

实现单次I/O任务逻辑。

import fs from '@ohos.file.fs';
import common from '@ohos.app.ability.common';

async function write(data: string, file: fs.File): Promise< void > {
  fs.write(file.fd, data).then((writeLen: number) = > {
    console.info('write data length is: ' + writeLen)
  }).catch((err) = > {
    console.error(`Failed to write data. Code is ${err.code}, message is ${err.message}`);
  })
}

搜狗高速浏览器截图20240326151450.png

采用异步能力调用单次I/O任务。

async function testFunc(): Promise< void > {
  let context = getContext() as common.UIAbilityContext;
  let filePath: string = context.filesDir + "/test.txt"; // 应用文件路径
  let file: fs.File = await fs.open(filePath, fs.OpenMode.READ_WRITE | fs.OpenMode.CREATE);
  write('Hello World!', file).then(() = > {
    console.info('Succeeded in writing data.');
  }).catch((err) = > {
    console.error(`Failed to write data. Code is ${err.code}, message is ${err.message}`);
  })
  fs.close(file);
}
testFunc();

审核编辑 黄宇

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 开发
    +关注

    关注

    0

    文章

    370

    浏览量

    40836
  • 鸿蒙
    +关注

    关注

    57

    文章

    2345

    浏览量

    42822
收藏 人收藏

    评论

    相关推荐

    鸿蒙OS开发实战:【ArkTS 实现MQTT协议(2)】

    1. 协议传输通道仅为TCPSocket 2. 基于HarmonyOS SDK API 9开发 3. 开发语言:ArkTS,TypeScript
    的头像 发表于 04-01 14:48 1530次阅读
    <b class='flag-5'>鸿蒙</b><b class='flag-5'>OS</b><b class='flag-5'>开发</b>实战:【<b class='flag-5'>ArkTS</b> 实现MQTT协议(2)】

    鸿蒙OS开发实例:【ArkTS多线程CPU密集型任务TaskPool】

    CPU密集型任务是指需要占用系统资源处理大量计算能力的任务,需要长时间运行,这段时间会阻塞线程其它事件的处理,不适宜放在主线程进行。例如图像处理、视频编码、数据分析等。 基于多线程并发机制处理CPU密集型任务可以提高CPU
    的头像 发表于 04-01 22:25 835次阅读
    <b class='flag-5'>鸿蒙</b><b class='flag-5'>OS</b><b class='flag-5'>开发</b><b class='flag-5'>实例</b>:【<b class='flag-5'>ArkTS</b><b class='flag-5'>类</b><b class='flag-5'>库</b>多线程CPU密集型<b class='flag-5'>任务</b>TaskPool】

    ArkTS语言基础-解析

    ArkTS语言基础是HarmonyOS系统上为应用开发者提供的常用基础能力,主要包含能力如下图所示。 图1 ArkTS语言基础
    发表于 02-20 16:44

    鸿蒙原生应用开发-ArkTS语言基础I/O任务开发

    Promise和async/await提供异步并发能力,适用于I/O任务的场景开发,本文以使
    发表于 03-04 14:07

    鸿蒙原生应用开发-ArkTS语言基础概述

    ArkTS语言基础是HarmonyOS系统上为应用开发者提供的常用基础能力,主要包含能力如下图所示。 1.提供异步并发和多线程并发的能力。 支持Promise和async/awa
    发表于 03-05 15:42

    鸿蒙原生应用开发-ArkTS语言基础多线程I/O密集型任务开发

    使用异步并发可以解决I/O任务阻塞的问题,但是如果遇到I/
    发表于 03-21 14:57

    OpenHarmony 应用开发SDK、API 与基础工具

    类似于 ArkTS API 上的完整鸿蒙平台能力,开发者可以使用 C API 开发支持鸿蒙应用框架的扩展动态
    发表于 09-19 15:45

    HarmonyOS语言基础开发指南上线啦!

    并发能力,适用于I/O任务开发场景。 ○ TaskPool和Worker提供多线程并发能力
    发表于 10-18 16:36

    鸿蒙 OS 应用开发初体验

    的 IDE、鸿蒙生态的开发语言 ArkTS,通过模拟器运行起来了鸿蒙 OS 版 HelloWorld。对于已经有移动
    发表于 11-02 19:38

    鸿蒙开发ArkTS基础知识

    一、ArkTS简介 ArkTS是HarmonyOS优选的主力应用开发语言。它在TypeScript(简称TS)的基础上,匹配了鸿蒙的ArkUI框架,扩展了声明式UI、状态管理等相应的能
    的头像 发表于 01-24 16:44 2242次阅读
    <b class='flag-5'>鸿蒙</b><b class='flag-5'>开发</b>之<b class='flag-5'>ArkTS</b>基础知识

    鸿蒙OS开发实例:【ArkTS多线程I/O密集型任务开发

    使用异步并发可以解决I/O任务阻塞的问题,但是如果遇到I/
    的头像 发表于 04-01 16:32 510次阅读
    <b class='flag-5'>鸿蒙</b><b class='flag-5'>OS</b><b class='flag-5'>开发</b><b class='flag-5'>实例</b>:【<b class='flag-5'>ArkTS</b><b class='flag-5'>类</b><b class='flag-5'>库</b>多线程<b class='flag-5'>I</b>/<b class='flag-5'>O</b>密集型<b class='flag-5'>任务</b><b class='flag-5'>开发</b>】

    鸿蒙OS开发实例:【ArkTS多线程@Concurrent装饰器校验并发函数】

    在使用TaskPool时,执行的并发函数需要使用该装饰器修饰,否则无法通过相关校验。从API version 9开始,该装饰器支持在ArkTS卡片中使用。
    的头像 发表于 04-02 14:45 668次阅读
    <b class='flag-5'>鸿蒙</b><b class='flag-5'>OS</b><b class='flag-5'>开发</b><b class='flag-5'>实例</b>:【<b class='flag-5'>ArkTS</b><b class='flag-5'>类</b><b class='flag-5'>库</b>多线程@Concurrent装饰器校验并发函数】

    鸿蒙OS开发实例:【ArkTS异步并发简述Promise】

    Promise和async/await提供异步并发能力,是标准的JS异步语法。异步代码会被挂起并在之后继续执行,同一时间只有一段代码执行,适用于I/O
    的头像 发表于 04-02 18:37 968次阅读
    <b class='flag-5'>鸿蒙</b><b class='flag-5'>OS</b><b class='flag-5'>开发</b><b class='flag-5'>实例</b>:【<b class='flag-5'>ArkTS</b><b class='flag-5'>类</b><b class='flag-5'>库</b>异步并发简述Promise】

    鸿蒙OS开发实例:【组件化模式】

    组件化一直是移动端比较流行的开发方式,有着编译运行快,业务逻辑分明,任务划分清晰等优点,针对Android端的组件化;与Android端的组件化相比,HarmonyOS的组件化可以说实现起来就颇费
    的头像 发表于 04-07 17:44 640次阅读
    <b class='flag-5'>鸿蒙</b><b class='flag-5'>OS</b><b class='flag-5'>开发</b><b class='flag-5'>实例</b>:【组件化模式】

    鸿蒙开发:【线程模型】

    管理其他线程的ArkTS引擎实例,例如使用TaskPool(任务池)创建任务或取消任务、启动和终止Worker线程。
    的头像 发表于 06-13 16:38 398次阅读
    <b class='flag-5'>鸿蒙</b><b class='flag-5'>开发</b>:【线程模型】