單次I/O任務(wù)開發(fā)指導(dǎo)

2024-02-16 13:43 更新

Promise和async/await提供異步并發(fā)能力,適用于單次I/O任務(wù)的場景開發(fā),本文以使用異步進(jìn)行單次文件寫入為例來提供指導(dǎo)。

  1. 實(shí)現(xiàn)單次I/O任務(wù)邏輯。

    1. import fs from '@ohos.file.fs';
    2. import common from '@ohos.app.ability.common';
    3. async function write(data: string, file: fs.File): Promise<void> {
    4. fs.write(file.fd, data).then((writeLen: number) => {
    5. console.info('write data length is: ' + writeLen)
    6. }).catch((err) => {
    7. console.error(`Failed to write data. Code is ${err.code}, message is ${err.message}`);
    8. })
    9. }
  2. 采用異步能力調(diào)用單次I/O任務(wù)。示例中的filePath的獲取方式請參見獲取應(yīng)用文件路徑。

    1. async function testFunc(): Promise<void> {
    2. let context = getContext() as common.UIAbilityContext;
    3. let filePath: string = context.filesDir + "/test.txt"; // 應(yīng)用文件路徑
    4. let file: fs.File = await fs.open(filePath, fs.OpenMode.READ_WRITE | fs.OpenMode.CREATE);
    5. write('Hello World!', file).then(() => {
    6. console.info('Succeeded in writing data.');
    7. }).catch((err) => {
    8. console.error(`Failed to write data. Code is ${err.code}, message is ${err.message}`);
    9. })
    10. fs.close(file);
    11. }
    12. testFunc();
以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號