0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

鴻蒙開發(fā)文件管理:【@ohos.fileio (文件管理)】

jf_46214456 ? 來源:jf_46214456 ? 作者:jf_46214456 ? 2024-06-12 18:12 ? 次閱讀

文件管理

該模塊提供文件存儲(chǔ)管理能力,包括文件基本管理、文件目錄管理、文件信息統(tǒng)計(jì)、文件流式讀寫等常用功能。

icon-note.gif說明: 本模塊首批接口從API version 6開始支持。后續(xù)版本的新增接口,采用上角標(biāo)單獨(dú)標(biāo)記接口的起始版本。 開發(fā)前請(qǐng)熟悉鴻蒙開發(fā)指導(dǎo)文檔 :[gitee.com/li-shizhen-skin/harmony-os/blob/master/README.md]

導(dǎo)入模塊

import fileio from '@ohos.fileio';

使用說明

使用該功能模塊對(duì)文件/目錄進(jìn)行操作前,需要先獲取其應(yīng)用沙箱路徑,獲取方式及其接口用法請(qǐng)參考:

import featureAbility from '@ohos.ability.featureAbility';
let context = featureAbility.getContext();
let path = '';
context.getFilesDir().then((data) = > {
     path = data;
})

fileio.stat

stat(path: string): Promise

獲取文件信息,使用Promise異步回調(diào)。

系統(tǒng)能力 :SystemCapability.FileManagement.File.FileIO

參數(shù)

參數(shù)名類型必填說明
pathstring待獲取文件的應(yīng)用沙箱路徑。

返回值:

類型說明
Promise<[Stat]>Promise對(duì)象。返回文件的具體信息。

示例:

fileio.stat(path).then(function(stat){
    console.info("getFileInfo succeed:"+ JSON.stringify(stat));
}).catch(function(err){
    console.info("getFileInfo failed with error:"+ err);
});

fileio.stat

stat(path:string, callback:AsyncCallback): void

獲取文件信息,使用callback異步回調(diào)。

系統(tǒng)能力 :SystemCapability.FileManagement.File.FileIO

參數(shù):

參數(shù)名類型必填說明
pathstring待獲取文件的應(yīng)用沙箱路徑。
callbackAsyncCallback<[Stat]>異步獲取文件的信息之后的回調(diào)。

示例:

fileio.stat(path, function (err, stat) {
    // example code in Stat
});

fileio.statSync

statSync(path:string): Stat

以同步方法獲取文件的信息。

系統(tǒng)能力 :SystemCapability.FileManagement.File.FileIO

參數(shù):

參數(shù)名類型必填說明
pathstring待獲取文件的應(yīng)用沙箱路徑。

返回值:

類型說明
[Stat]表示文件的具體信息。

示例:

let stat = fileio.statSync(path);
// example code in Stat

fileio.opendir

opendir(path: string): Promise

打開文件目錄,使用Promise異步回調(diào)。

系統(tǒng)能力 :SystemCapability.FileManagement.File.FileIO

參數(shù):

參數(shù)名類型必填說明
pathstring待打開文件目錄的應(yīng)用沙箱路徑。

返回值:

類型說明
Promise<[Dir]>Promise對(duì)象。返回Dir對(duì)象。

示例:

fileio.opendir(path).then(function(dir){
    console.info("opendir succeed:"+ JSON.stringify(dir));
}).catch(function(err){
    console.info("opendir failed with error:"+ err);
});

fileio.opendir

opendir(path: string, callback: AsyncCallback

): void

打開文件目錄,使用callback異步回調(diào)。

系統(tǒng)能力 :SystemCapability.FileManagement.File.FileIO

參數(shù):

參數(shù)名類型必填說明
pathstring待打開文件目錄的應(yīng)用沙箱路徑。
callbackAsyncCallback<[Dir]>異步打開文件目錄之后的回調(diào)。

示例:

fileio.opendir(path, function (err, dir) { 
    // example code in Dir struct
    // use read/readSync/close
});

fileio.opendirSync

opendirSync(path: string): Dir

以同步方法打開文件目錄。

系統(tǒng)能力 :SystemCapability.FileManagement.File.FileIO

參數(shù):

參數(shù)名類型必填說明
pathstring待打開文件目錄的應(yīng)用沙箱路徑。

返回值:

類型說明
[Dir]返回Dir對(duì)象。

示例:

let dir = fileio.opendirSync(path);
// example code in Dir struct
// use read/readSync/close

fileio.access

access(path: string, mode?: number): Promise

檢查當(dāng)前進(jìn)程是否可訪問某文件,使用Promise異步回調(diào)。

系統(tǒng)能力 :SystemCapability.FileManagement.File.FileIO

參數(shù):

參數(shù)名類型必填說明
pathstring待訪問文件的應(yīng)用沙箱路徑。
modenumber訪問文件時(shí)的選項(xiàng),可給定如下選項(xiàng),以按位或的方式使用多個(gè)選項(xiàng),默認(rèn)給定0。 確認(rèn)當(dāng)前進(jìn)程是否具有對(duì)應(yīng)權(quán)限: - 0:確認(rèn)文件是否存在。 - 1:確認(rèn)當(dāng)前進(jìn)程是否具有可執(zhí)行權(quán)限。 - 2:確認(rèn)當(dāng)前進(jìn)程是否具有寫權(quán)限。 - 4:確認(rèn)當(dāng)前進(jìn)程是否具有讀權(quán)限。

返回值:

類型說明
PromisePromise對(duì)象。無返回值。

示例:

fileio.access(path).then(function() {
    console.info("access succeed");
}).catch(function(err){
    console.info("access failed with error:"+ err);
});

fileio.access

access(path: string, mode: number, callback: AsyncCallback): void

檢查當(dāng)前進(jìn)程是否可訪問某文件,使用callback異步回調(diào)。

系統(tǒng)能力 :SystemCapability.FileManagement.File.FileIO

參數(shù):

參數(shù)名類型必填說明
pathstring待訪問文件的應(yīng)用沙箱路徑。
modenumber訪問文件時(shí)的選項(xiàng),可給定如下選項(xiàng),以按位或的方式使用多個(gè)選項(xiàng),默認(rèn)給定0。 確認(rèn)當(dāng)前進(jìn)程是否具有對(duì)應(yīng)權(quán)限: - 0:確認(rèn)文件是否存在。 - 1:確認(rèn)當(dāng)前進(jìn)程是否具有可執(zhí)行權(quán)限。 - 2:確認(rèn)當(dāng)前進(jìn)程是否具有寫權(quán)限。 - 4:確認(rèn)當(dāng)前進(jìn)程是否具有讀權(quán)限。
callbackAsyncCallback異步檢查當(dāng)前進(jìn)程是否可訪問某文件之后的回調(diào)。

示例:

fileio.access(path, function (err) {
    // do something
});

fileio.accessSync

accessSync(path: string, mode?: number): void

以同步方法檢查當(dāng)前進(jìn)程是否可訪問某文件。

系統(tǒng)能力 :SystemCapability.FileManagement.File.FileIO

參數(shù):

參數(shù)名類型必填說明
pathstring待訪問文件的應(yīng)用沙箱路徑。
modenumber訪問文件時(shí)的選項(xiàng),可給定如下選項(xiàng),以按位或的方式使用多個(gè)選項(xiàng),默認(rèn)給定0。 確認(rèn)當(dāng)前進(jìn)程是否具有對(duì)應(yīng)權(quán)限: - 0:確認(rèn)文件是否存在。 - 1:確認(rèn)當(dāng)前進(jìn)程是否具有可執(zhí)行權(quán)限。 - 2:確認(rèn)當(dāng)前進(jìn)程是否具有寫權(quán)限。 - 4:確認(rèn)當(dāng)前進(jìn)程是否具有讀權(quán)限。

示例:

try {
    fileio.accessSync(path);
} catch(err) {
    console.info("accessSync failed with error:"+ err);
}

fileio.close7+

close(fd: number):Promise

關(guān)閉文件,使用Promise異步回調(diào)。

系統(tǒng)能力 :SystemCapability.FileManagement.File.FileIO

參數(shù):

參數(shù)名類型必填說明
fdnumber待關(guān)閉文件的文件描述符。

返回值:

類型說明
PromisePromise對(duì)象。無返回值。

示例:

let fd = fileio.openSync(path);
fileio.close(fd).then(function(){
    console.info("close file succeed");
}).catch(function(err){
    console.info("close file failed with error:"+ err);
});

fileio.close7+

close(fd: number, callback:AsyncCallback): void

關(guān)閉文件,使用callback異步回調(diào)。

系統(tǒng)能力 :SystemCapability.FileManagement.File.FileIO

參數(shù):

參數(shù)名類型必填說明
fdnumber待關(guān)閉文件的文件描述符。
callbackAsyncCallback異步關(guān)閉文件之后的回調(diào)。

示例:

let fd = fileio.openSync(path);
fileio.close(fd, function (err) {
    // do something
});

fileio.closeSync

closeSync(fd: number): void

以同步方法關(guān)閉文件。

系統(tǒng)能力 :SystemCapability.FileManagement.File.FileIO

參數(shù):

參數(shù)名類型必填說明
fdnumber待關(guān)閉文件的文件描述符。

示例:

let fd = fileio.openSync(path);
fileio.closeSync(fd);

fileio.copyFile

copyFile(src:string | number, dest:string | number, mode?:number):Promise

復(fù)制文件,使用Promise異步回調(diào)。

系統(tǒng)能力 :SystemCapability.FileManagement.File.FileIO

參數(shù):

參數(shù)名類型必填說明
srcstringnumber
deststringnumber
modenumbermode提供覆蓋文件的選項(xiàng),當(dāng)前僅支持0,且默認(rèn)為0。 0:完全覆蓋目標(biāo)文件,未覆蓋部分將被裁切掉。

返回值:

類型說明
PromisePromise對(duì)象。無返回值。

示例:

let src = path;
let dest = src + 'tgt';
fileio.copyFile(src, dest).then(function(){
    console.info("copyFile succeed");
}).catch(function(err){
    console.info("copyFile failed with error:"+ err);
});

fileio.copyFile

copyFile(src: string | number, dest: string | number, mode: number, callback: AsyncCallback): void

復(fù)制文件,使用callback異步回調(diào)。

系統(tǒng)能力 :SystemCapability.FileManagement.File.FileIO

參數(shù):

參數(shù)名類型必填說明
srcstringnumber
deststringnumber
modenumbermode提供覆蓋文件的選項(xiàng),當(dāng)前僅支持0,且默認(rèn)為0。 0:完全覆蓋目標(biāo)文件,未覆蓋部分將被裁切掉。
callbackAsyncCallback異步復(fù)制文件之后的回調(diào)。

示例:

let src = path;
let dest = src + 'tgt';
fileio.copyFile(src, dest, function (err) {
    // do something
});

fileio.copyFileSync

copyFileSync(src: string | number, dest: string | number, mode?: number): void

以同步方法復(fù)制文件。

系統(tǒng)能力 :SystemCapability.FileManagement.File.FileIO

參數(shù):

參數(shù)名類型必填說明
srcstringnumber
deststringnumber
modenumbermode提供覆蓋文件的選項(xiàng),當(dāng)前僅支持0,且默認(rèn)為0。 0:完全覆蓋目標(biāo)文件,未覆蓋部分將被裁切掉。

示例:

let src = path;
let dest = src + 'tgt';
fileio.copyFileSync(src, dest);

fileio.mkdir

mkdir(path:string, mode?: number): Promise

創(chuàng)建目錄,使用Promise異步回調(diào)。

系統(tǒng)能力 :SystemCapability.FileManagement.File.FileIO

參數(shù):

參數(shù)名類型必填說明
pathstring待創(chuàng)建目錄的應(yīng)用沙箱路徑。
modenumber創(chuàng)建目錄的權(quán)限,可給定如下權(quán)限,以按位或的方式追加權(quán)限,默認(rèn)給定0o775。 - 0o775:所有者具有讀、寫及可執(zhí)行權(quán)限,其余用戶具有讀及可執(zhí)行權(quán)限。 - 0o700:所有者具有讀、寫及可執(zhí)行權(quán)限。 - 0o400:所有者具有讀權(quán)限。 - 0o200:所有者具有寫權(quán)限。 - 0o100:所有者具有可執(zhí)行權(quán)限。 - 0o070:所有用戶組具有讀、寫及可執(zhí)行權(quán)限。 - 0o040:所有用戶組具有讀權(quán)限。 - 0o020:所有用戶組具有寫權(quán)限。 - 0o010:所有用戶組具有可執(zhí)行權(quán)限。 - 0o007:其余用戶具有讀、寫及可執(zhí)行權(quán)限。 - 0o004:其余用戶具有讀權(quán)限。 - 0o002:其余用戶具有寫權(quán)限。 - 0o001:其余用戶具有可執(zhí)行權(quán)限。

返回值:

類型說明
PromisePromise對(duì)象。無返回值。

示例:

fileio.mkdir(path).then(function() {
    console.info("mkdir succeed");
}).catch(function (error){
    console.info("mkdir failed with error:"+ error);
});

fileio.mkdir

mkdir(path: string, mode: number, callback: AsyncCallback): void

創(chuàng)建目錄,使用callback異步回調(diào)。

系統(tǒng)能力 :SystemCapability.FileManagement.File.FileIO

參數(shù):

參數(shù)名類型必填說明
pathstring待創(chuàng)建目錄的應(yīng)用沙箱路徑。
modenumber創(chuàng)建目錄的權(quán)限,可給定如下權(quán)限,以按位或的方式追加權(quán)限,默認(rèn)給定0o775。 - 0o775:所有者具有讀、寫及可執(zhí)行權(quán)限,其余用戶具有讀及可執(zhí)行權(quán)限。 - 0o700:所有者具有讀、寫及可執(zhí)行權(quán)限。 - 0o400:所有者具有讀權(quán)限。 - 0o200:所有者具有寫權(quán)限。 - 0o100:所有者具有可執(zhí)行權(quán)限。 - 0o070:所有用戶組具有讀、寫及可執(zhí)行權(quán)限。 - 0o040:所有用戶組具有讀權(quán)限。 - 0o020:所有用戶組具有寫權(quán)限。 - 0o010:所有用戶組具有可執(zhí)行權(quán)限。 - 0o007:其余用戶具有讀、寫及可執(zhí)行權(quán)限。 - 0o004:其余用戶具有讀權(quán)限。 - 0o002:其余用戶具有寫權(quán)限。 - 0o001:其余用戶具有可執(zhí)行權(quán)限。
callbackAsyncCallback異步創(chuàng)建目錄操作完成之后的回調(diào)。

示例:

fileio.mkdir(path, function(err) {
  console.info("mkdir succeed");
});

fileio.mkdirSync

mkdirSync(path: string, mode?: number): void

以同步方法創(chuàng)建目錄。

系統(tǒng)能力 :SystemCapability.FileManagement.File.FileIO

參數(shù):

參數(shù)名類型必填說明
pathstring待創(chuàng)建目錄的應(yīng)用沙箱路徑。
modenumber創(chuàng)建目錄的權(quán)限,可給定如下權(quán)限,以按位或的方式追加權(quán)限,默認(rèn)給定0o775。 - 0o775:所有者具有讀、寫及可執(zhí)行權(quán)限,其余用戶具有讀及可執(zhí)行權(quán)限。 - 0o700:所有者具有讀、寫及可執(zhí)行權(quán)限。 - 0o400:所有者具有讀權(quán)限。 - 0o200:所有者具有寫權(quán)限。 - 0o100:所有者具有可執(zhí)行權(quán)限。 - 0o070:所有用戶組具有讀、寫及可執(zhí)行權(quán)限。 - 0o040:所有用戶組具有讀權(quán)限。 - 0o020:所有用戶組具有寫權(quán)限。 - 0o010:所有用戶組具有可執(zhí)行權(quán)限。 - 0o007:其余用戶具有讀、寫及可執(zhí)行權(quán)限。 - 0o004:其余用戶具有讀權(quán)限。 - 0o002:其余用戶具有寫權(quán)限。 - 0o001:其余用戶具有可執(zhí)行權(quán)限。

示例:

fileio.mkdirSync(path);

fileio.open7+

open(path: string, flags?: number, mode?: number): Promise

打開文件,使用Promise異步回調(diào)。

系統(tǒng)能力 :SystemCapability.FileManagement.File.FileIO

參數(shù):

參數(shù)名類型必填說明
pathstring待打開文件的應(yīng)用沙箱路徑。
flagsnumber打開文件的選項(xiàng),必須指定如下選項(xiàng)中的一個(gè),默認(rèn)以只讀方式打開: - 0o0:只讀打開。 - 0o1:只寫打開。 - 0o2:讀寫打開。 同時(shí),也可給定如下選項(xiàng),以按位或的方式追加,默認(rèn)不給定任何額外選項(xiàng): - 0o100:若文件不存在,則創(chuàng)建文件。使用該選項(xiàng)時(shí)必須指定第三個(gè)參數(shù) mode。 - 0o200:如果追加了0o100選項(xiàng),且文件已經(jīng)存在,則出錯(cuò)。 - 0o1000:如果文件存在且以只寫或讀寫的方式打開文件,則將其長(zhǎng)度裁剪為零。 - 0o2000:以追加方式打開,后續(xù)寫將追加到文件末尾。 - 0o4000:如果path指向FIFO、塊特殊文件或字符特殊文件,則本次打開及后續(xù) IO 進(jìn)行非阻塞操作。 - 0o200000:如果path不指向目錄,則出錯(cuò)。 - 0o400000:如果path指向符號(hào)鏈接,則出錯(cuò)。 - 0o4010000:以同步IO的方式打開文件。
modenumber若創(chuàng)建文件,則指定文件的權(quán)限,可給定如下權(quán)限,以按位或的方式追加權(quán)限,默認(rèn)給定0o666。 - 0o666:所有者具有讀、寫權(quán)限,所有用戶組具有讀、寫權(quán)限,其余用戶具有讀、寫權(quán)限。 - 0o700:所有者具有讀、寫及可執(zhí)行權(quán)限。 - 0o400:所有者具有讀權(quán)限。 - 0o200:所有者具有寫權(quán)限。 - 0o100:所有者具有可執(zhí)行權(quán)限。 - 0o070:所有用戶組具有讀、寫及可執(zhí)行權(quán)限。 - 0o040:所有用戶組具有讀權(quán)限。 - 0o020:所有用戶組具有寫權(quán)限。 - 0o010:所有用戶組具有可執(zhí)行權(quán)限。 - 0o007:其余用戶具有讀、寫及可執(zhí)行權(quán)限。 - 0o004:其余用戶具有讀權(quán)限。 - 0o002:其余用戶具有寫權(quán)限。 - 0o001:其余用戶具有可執(zhí)行權(quán)限。

返回值:

類型說明
PromisePromise對(duì)象。返回打開文件的文件描述符。

示例:

fileio.open(path, 0o1, 0o0200).then(function(number){
    console.info("open file succeed");
}).catch(function(err){
    console.info("open file failed with error:"+ err);
});

fileio.open7+

open(path: string, flags: number, mode: number, callback: AsyncCallback): void

打開文件,使用callback異步回調(diào)。

系統(tǒng)能力 :SystemCapability.FileManagement.File.FileIO

參數(shù):

參數(shù)名類型必填說明
pathstring待打開文件的應(yīng)用沙箱路徑。
flagsnumber打開文件的選項(xiàng),必須指定如下選項(xiàng)中的一個(gè),默認(rèn)以只讀方式打開: - 0o0:只讀打開。 - 0o1:只寫打開。 - 0o2:讀寫打開。 同時(shí),也可給定如下選項(xiàng),以按位或的方式追加,默認(rèn)不給定任何額外選項(xiàng): - 0o100:若文件不存在,則創(chuàng)建文件。使用該選項(xiàng)時(shí)必須指定第三個(gè)參數(shù) mode。 - 0o200:如果追加了0o100選項(xiàng),且文件已經(jīng)存在,則出錯(cuò)。 - 0o1000:如果文件存在且以只寫或讀寫的方式打開文件,則將其長(zhǎng)度裁剪為零。 - 0o2000:以追加方式打開,后續(xù)寫將追加到文件末尾。 - 0o4000:如果path指向FIFO、塊特殊文件或字符特殊文件,則本次打開及后續(xù) IO 進(jìn)行非阻塞操作。 - 0o200000:如果path不指向目錄,則出錯(cuò)。 - 0o400000:如果path指向符號(hào)鏈接,則出錯(cuò)。 - 0o4010000:以同步IO的方式打開文件。
modenumber若創(chuàng)建文件,則指定文件的權(quán)限,可給定如下權(quán)限,以按位或的方式追加權(quán)限,默認(rèn)給定0o666。 - 0o666:所有者具有讀、寫權(quán)限,所有用戶組具有讀、寫權(quán)限,其余用戶具有讀、寫權(quán)限。 - 0o700:所有者具有讀、寫及可執(zhí)行權(quán)限。 - 0o400:所有者具有讀權(quán)限。 - 0o200:所有者具有寫權(quán)限。 - 0o100:所有者具有可執(zhí)行權(quán)限。 - 0o070:所有用戶組具有讀、寫及可執(zhí)行權(quán)限。 - 0o040:所有用戶組具有讀權(quán)限。 - 0o020:所有用戶組具有寫權(quán)限。 - 0o010:所有用戶組具有可執(zhí)行權(quán)限。 - 0o007:其余用戶具有讀、寫及可執(zhí)行權(quán)限。 - 0o004:其余用戶具有讀權(quán)限。 - 0o002:其余用戶具有寫權(quán)限。 - 0o001:其余用戶具有可執(zhí)行權(quán)限。
callbackAsyncCallback異步打開文件之后的回調(diào)。

示例:

fileio.open(path, 0, function(err, fd) {
    // do something
});

fileio.openSync

openSync(path:string, flags?:number, mode?:number): number

以同步方法打開文件。

系統(tǒng)能力 :SystemCapability.FileManagement.File.FileIO

參數(shù):

參數(shù)名類型必填說明
pathstring待打開文件的應(yīng)用沙箱路徑。
flagsnumber打開文件的選項(xiàng),必須指定如下選項(xiàng)中的一個(gè),默認(rèn)以只讀方式打開: - 0o0:只讀打開。 - 0o1:只寫打開。 - 0o2:讀寫打開。 同時(shí),也可給定如下選項(xiàng),以按位或的方式追加,默認(rèn)不給定任何額外選項(xiàng): - 0o100:若文件不存在,則創(chuàng)建文件。使用該選項(xiàng)時(shí)必須指定第三個(gè)參數(shù) mode。 - 0o200:如果追加了0o100選項(xiàng),且文件已經(jīng)存在,則出錯(cuò)。 - 0o1000:如果文件存在且以只寫或讀寫的方式打開文件,則將其長(zhǎng)度裁剪為零。 - 0o2000:以追加方式打開,后續(xù)寫將追加到文件末尾。 - 0o4000:如果path指向FIFO、塊特殊文件或字符特殊文件,則本次打開及后續(xù) IO 進(jìn)行非阻塞操作。 - 0o200000:如果path不指向目錄,則出錯(cuò)。 - 0o400000:如果path指向符號(hào)鏈接,則出錯(cuò)。 - 0o4010000:以同步IO的方式打開文件。
modenumber若創(chuàng)建文件,則指定文件的權(quán)限,可給定如下權(quán)限,以按位或的方式追加權(quán)限,默認(rèn)給定0o666。 - 0o666:所有者具有讀、寫權(quán)限,所有用戶組具有讀、寫權(quán)限,其余用戶具有讀、寫權(quán)限。 - 0o640:所有者具有讀、寫權(quán)限,所有用戶組具有讀權(quán)限。 - 0o700:所有者具有讀、寫及可執(zhí)行權(quán)限。 - 0o400:所有者具有讀權(quán)限。 - 0o200:所有者具有寫權(quán)限。 - 0o100:所有者具有可執(zhí)行權(quán)限。 - 0o070:所有用戶組具有讀、寫及可執(zhí)行權(quán)限。 - 0o040:所有用戶組具有讀權(quán)限。 - 0o020:所有用戶組具有寫權(quán)限。 - 0o010:所有用戶組具有可執(zhí)行權(quán)限。 - 0o007:其余用戶具有讀、寫及可執(zhí)行權(quán)限。 - 0o004:其余用戶具有讀權(quán)限。 - 0o002:其余用戶具有寫權(quán)限。 - 0o001:其余用戶具有可執(zhí)行權(quán)限。 創(chuàng)建出的文件權(quán)限受umask影響,umask隨進(jìn)程啟動(dòng)確定,其修改當(dāng)前不開放。

返回值:

類型說明
number打開文件的文件描述符。

示例:

let fd = fileio.openSync(path, 0o102, 0o640);
let fd = fileio.openSync(path, 0o102, 0o666);
fileio.writeSync(fd, 'hello world');
let fd1 = fileio.openSync(path, 0o2002);
fileio.writeSync(fd1, 'hello world');
let num = fileio.readSync(fd1, new ArrayBuffer(4096), {position: 0});
console.info("num == " + num);

fileio.read

read(fd: number, buffer: ArrayBuffer, options?: { offset?: number; length?: number; position?: number; }): Promise

從文件讀取數(shù)據(jù),使用Promise異步回調(diào)。

系統(tǒng)能力 :SystemCapability.FileManagement.File.FileIO

參數(shù):

參數(shù)名類型必填說明
fdnumber待讀取文件的文件描述符。
bufferArrayBuffer用于保存讀取到的文件數(shù)據(jù)的緩沖區(qū)。
optionsObject支持如下選項(xiàng): - offset,number類型,表示將數(shù)據(jù)讀取到緩沖區(qū)的位置,即相對(duì)于緩沖區(qū)首地址的偏移??蛇x,默認(rèn)為0。 - length,number類型,表示期望讀取數(shù)據(jù)的長(zhǎng)度。可選,默認(rèn)緩沖區(qū)長(zhǎng)度減去偏移長(zhǎng)度。 - position,number類型,表示期望讀取文件的位置。可選,默認(rèn)從當(dāng)前位置開始讀。 約束:offset+length<=buffer.size。

返回值:

類型說明
Promise<[ReadOut]>Promise對(duì)象。返回讀取的結(jié)果。

示例:

let fd = fileio.openSync(path, 0o2);
let buf = new ArrayBuffer(4096);
fileio.read(fd, buf).then(function(readOut){
    console.info("read file data succeed");
    console.log(String.fromCharCode.apply(null, new Uint8Array(readOut.buffer)));
}).catch(function(err){
    console.info("read file data failed with error:"+ err);
});

fileio.read

read(fd: number, buffer: ArrayBuffer, options: { offset?: number; length?: number; position?: number; }, callback: AsyncCallback): void

從文件讀取數(shù)據(jù),使用callback異步回調(diào)。

系統(tǒng)能力 :SystemCapability.FileManagement.File.FileIO

參數(shù):

參數(shù)名類型必填說明
fdnumber待讀取文件的文件描述符。
bufferArrayBuffer用于保存讀取到的文件數(shù)據(jù)的緩沖區(qū)。
optionsObject支持如下選項(xiàng): - offset,number類型,表示將數(shù)據(jù)讀取到緩沖區(qū)的位置,即相對(duì)于緩沖區(qū)首地址的偏移??蛇x,默認(rèn)為0。 - length,number類型,表示期望讀取數(shù)據(jù)的長(zhǎng)度??蛇x,默認(rèn)緩沖區(qū)長(zhǎng)度減去偏移長(zhǎng)度。 - position,number類型,表示期望讀取文件的位置??蛇x,默認(rèn)從當(dāng)前位置開始讀。 約束:offset+length<=buffer.size。
callbackAsyncCallback<[ReadOut]>異步讀取數(shù)據(jù)之后的回調(diào)。

示例:

let fd = fileio.openSync(path, 0o2);
let buf = new ArrayBuffer(4096);
fileio.read(fd, buf, function (err, readOut) {
    if (readOut) {
        console.info("read file data succeed");
        console.log(String.fromCharCode.apply(null, new Uint8Array(readOut.buffer)));
    }
});

fileio.readSync

readSync(fd: number, buffer: ArrayBuffer, options?: { offset?: number; length?: number; position?: number; }): number

以同步方法從文件讀取數(shù)據(jù)。

系統(tǒng)能力 :SystemCapability.FileManagement.File.FileIO

參數(shù):

參數(shù)名類型必填說明
fdnumber待讀取文件的文件描述符。
bufferArrayBuffer用于保存讀取到的文件數(shù)據(jù)的緩沖區(qū)。
optionsObject支持如下選項(xiàng): - offset,number類型,表示將數(shù)據(jù)讀取到緩沖區(qū)的位置,即相對(duì)于緩沖區(qū)首地址的偏移??蛇x,默認(rèn)為0。 - length,number類型,表示期望讀取數(shù)據(jù)的長(zhǎng)度??蛇x,默認(rèn)緩沖區(qū)長(zhǎng)度減去偏移長(zhǎng)度。 - position,number類型,表示期望讀取文件的位置。可選,默認(rèn)從當(dāng)前位置開始讀。 約束:offset+length<=buffer.size。

返回值:

類型說明
number實(shí)際讀取的長(zhǎng)度。

示例:

let fd = fileio.openSync(path, 0o2);
let buf = new ArrayBuffer(4096);
let num = fileio.readSync(fd, buf);

fileio.rmdir7+

rmdir(path: string): Promise

刪除目錄,使用Promise異步回調(diào)。

系統(tǒng)能力 :SystemCapability.FileManagement.File.FileIO

參數(shù):

參數(shù)名類型必填說明
pathstring待刪除目錄的應(yīng)用沙箱路徑。

返回值:

類型說明
PromisePromise對(duì)象。無返回值。

示例:

fileio.rmdir(path).then(function() {
    console.info("rmdir succeed");
}).catch(function(err){
    console.info("rmdir failed with error:"+ err);
});

fileio.rmdir7+

rmdir(path: string, callback:AsyncCallback): void

刪除目錄,使用callback異步回調(diào)。

系統(tǒng)能力 :SystemCapability.FileManagement.File.FileIO

參數(shù):

參數(shù)名類型必填說明
pathstring待刪除目錄的應(yīng)用沙箱路徑。
callbackAsyncCallback異步刪除目錄之后的回調(diào)。

示例:

fileio.rmdir(path, function(err){
    // do something
    console.info("rmdir succeed");
});

fileio.rmdirSync7+

rmdirSync(path: string): void

以同步方法刪除目錄。

系統(tǒng)能力 :SystemCapability.FileManagement.File.FileIO

參數(shù):

參數(shù)名類型必填說明
pathstring待刪除目錄的應(yīng)用沙箱路徑。

示例:

fileio.rmdirSync(path);

fileio.unlink

unlink(path:string): Promise

刪除文件,使用Promise異步回調(diào)。

系統(tǒng)能力 :SystemCapability.FileManagement.File.FileIO

參數(shù):

參數(shù)名類型必填說明
pathstring待刪除文件的應(yīng)用沙箱路徑。

返回值:

類型說明
PromisePromise對(duì)象。無返回值。

示例:

fileio.unlink(path).then(function(){
    console.info("remove file succeed");
}).catch(function(error){
    console.info("remove file failed with error:"+ error);
});

fileio.unlink

unlink(path:string, callback:AsyncCallback): void

刪除文件,使用callback異步回調(diào)。

系統(tǒng)能力 :SystemCapability.FileManagement.File.FileIO

參數(shù):

參數(shù)名類型必填說明
pathstring待刪除文件的應(yīng)用沙箱路徑。
callbackAsyncCallback異步刪除文件之后的回調(diào)。

示例:

fileio.unlink(path, function(err) {
    console.info("remove file succeed");
});

fileio.unlinkSync

unlinkSync(path: string): void

以同步方法刪除文件。

系統(tǒng)能力 :SystemCapability.FileManagement.File.FileIO

參數(shù):

參數(shù)名類型必填說明
pathstring待刪除文件的應(yīng)用沙箱路徑。

示例:

fileio.unlinkSync(path);

fileio.write

write(fd: number, buffer: ArrayBuffer | string, options?: { offset?: number; length?: number; position?: number; encoding?: string; }): Promise

將數(shù)據(jù)寫入文件,使用Promise異步回調(diào)。

系統(tǒng)能力 :SystemCapability.FileManagement.File.FileIO

參數(shù):

參數(shù)名類型必填說明
fdnumber待寫入文件的文件描述符。
bufferArrayBufferstring
optionsObject支持如下選項(xiàng): - offset,number類型,表示期望寫入數(shù)據(jù)的位置相對(duì)于數(shù)據(jù)首地址的偏移??蛇x,默認(rèn)為0。 - length,number類型,表示期望寫入數(shù)據(jù)的長(zhǎng)度??蛇x,默認(rèn)緩沖區(qū)長(zhǎng)度減去偏移長(zhǎng)度。 - position,number類型,表示期望寫入文件的位置??蛇x,默認(rèn)從當(dāng)前位置開始寫。 - encoding,string類型,當(dāng)數(shù)據(jù)是string類型時(shí)有效,表示數(shù)據(jù)的編碼方式,默認(rèn) 'utf-8'。僅支持 'utf-8'。 約束:offset+length<=buffer.size。

返回值:

類型說明
PromisePromise對(duì)象。返回實(shí)際寫入的長(zhǎng)度。

示例:

let fd = fileio.openSync(path, 0o100 | 0o2, 0o666);
fileio.write(fd, "hello, world").then(function(number){
     console.info("write data to file succeed and size is:"+ number);
}).catch(function(err){
    console.info("write data to file failed with error:"+ err);
});

fileio.write

write(fd: number, buffer: ArrayBuffer | string, options: { offset?: number; length?: number; position?: number; encoding?: string; }, callback: AsyncCallback): void

將數(shù)據(jù)寫入文件,使用callback異步回調(diào)。

系統(tǒng)能力 :SystemCapability.FileManagement.File.FileIO

參數(shù):

參數(shù)名類型必填說明
fdnumber待寫入文件的文件描述符。
bufferArrayBufferstring
optionsObject支持如下選項(xiàng): - offset,number類型,表示期望寫入數(shù)據(jù)的位置相對(duì)于數(shù)據(jù)首地址的偏移??蛇x,默認(rèn)為0。 - length,number類型,表示期望寫入數(shù)據(jù)的長(zhǎng)度??蛇x,默認(rèn)緩沖區(qū)長(zhǎng)度減去偏移長(zhǎng)度。 - position,number類型,表示期望寫入文件的位置??蛇x,默認(rèn)從當(dāng)前位置開始寫。 - encoding,string類型,當(dāng)數(shù)據(jù)是string類型時(shí)有效,表示數(shù)據(jù)的編碼方式,默認(rèn) 'utf-8'。僅支持 'utf-8'。 約束:offset+length<=buffer.size。
callbackAsyncCallback異步將數(shù)據(jù)寫入完成后執(zhí)行的回調(diào)函數(shù)。

示例:

let fd = fileio.openSync(path, 0o100 | 0o2, 0o666);
fileio.write(fd, "hello, world", function (err, bytesWritten) {
    if (bytesWritten) {
       console.info("write data to file succeed and size is:"+ bytesWritten);
    }
});

fileio.writeSync

writeSync(fd: number, buffer: ArrayBuffer | string, options?: { offset?: number; length?: number; position?: number; encoding?: string; }): number

以同步方法將數(shù)據(jù)寫入文件。

系統(tǒng)能力 :SystemCapability.FileManagement.File.FileIO

參數(shù):

參數(shù)名類型必填說明
fdnumber待寫入文件的文件描述符。
bufferArrayBufferstring
optionsObject支持如下選項(xiàng): - offset,number類型,表示期望寫入數(shù)據(jù)的位置相對(duì)于數(shù)據(jù)首地址的偏移??蛇x,默認(rèn)為0。 - length,number類型,表示期望寫入數(shù)據(jù)的長(zhǎng)度。可選,默認(rèn)緩沖區(qū)長(zhǎng)度減去偏移長(zhǎng)度。 - position,number類型,表示期望寫入文件的位置??蛇x,默認(rèn)從當(dāng)前位置開始寫。 - encoding,string類型,當(dāng)數(shù)據(jù)是string類型時(shí)有效,表示數(shù)據(jù)的編碼方式,默認(rèn) 'utf-8'。僅支持 'utf-8'。 約束:offset+length<=buffer.size。

返回值:

類型說明
number實(shí)際寫入的長(zhǎng)度。

示例:

let fd = fileio.openSync(path, 0o100 | 0o2, 0o666);
let num = fileio.writeSync(fd, "hello, world");

fileio.hash

hash(path: string, algorithm: string): Promise

計(jì)算文件的哈希值,使用Promise異步回調(diào)。

系統(tǒng)能力 :SystemCapability.FileManagement.File.FileIO

參數(shù):

參數(shù)名類型必填說明
pathstring待計(jì)算哈希值文件的應(yīng)用沙箱路徑。
algorithmstring哈希計(jì)算采用的算法??蛇x "md5"、"sha1" 或 "sha256"。建議采用安全強(qiáng)度更高的 "sha256"。

返回值:

類型說明
PromisePromise對(duì)象。返回文件的哈希值。表示為十六進(jìn)制數(shù)字串,所有字母均大寫。

示例:

fileio.hash(path, "sha256").then(function(str){
    console.info("calculate file hash succeed:"+ str);
}).catch(function(err){
    console.info("calculate file hash failed with error:"+ err);
});

fileio.hash

hash(path: string, algorithm: string, callback: AsyncCallback): void

計(jì)算文件的哈希值,使用callback異步回調(diào)。

系統(tǒng)能力 :SystemCapability.FileManagement.File.FileIO

參數(shù):

參數(shù)名類型必填說明
pathstring待計(jì)算哈希值文件的應(yīng)用沙箱路徑。
algorithmstring哈希計(jì)算采用的算法??蛇x "md5"、"sha1" 或 "sha256"。建議采用安全強(qiáng)度更高的 "sha256"。
callbackAsyncCallback異步計(jì)算文件哈希操作之后的回調(diào)函數(shù)(其中給定文件哈希值表示為十六進(jìn)制數(shù)字串,所有字母均大寫)。

示例:

fileio.hash(path, "sha256", function(err, hashStr) {
    if (hashStr) {
        console.info("calculate file hash succeed:"+ hashStr);
    }
});

fileio.chmod7+

chmod(path: string, mode: number):Promise

改變文件權(quán)限,使用Promise異步回調(diào)。

系統(tǒng)能力 :SystemCapability.FileManagement.File.FileIO

參數(shù):

參數(shù)名類型必填說明
pathstring所需變更權(quán)限的文件的應(yīng)用沙箱路徑。
modenumber改變文件權(quán)限,可給定如下權(quán)限,以按位或的方式追加權(quán)限。 - 0o700:所有者具有讀、寫及可執(zhí)行權(quán)限。 - 0o400:所有者具有讀權(quán)限。 - 0o200:所有者具有寫權(quán)限。 - 0o100:所有者具有可執(zhí)行權(quán)限。 - 0o070:所有用戶組具有讀、寫及可執(zhí)行權(quán)限。 - 0o040:所有用戶組具有讀權(quán)限。 - 0o020:所有用戶組具有寫權(quán)限。 - 0o010:所有用戶組具有可執(zhí)行權(quán)限。 - 0o007:其余用戶具有讀、寫及可執(zhí)行權(quán)限。 - 0o004:其余用戶具有讀權(quán)限。 - 0o002:其余用戶具有寫權(quán)限。 - 0o001:其余用戶具有可執(zhí)行權(quán)限。

返回值:

類型說明
PromisePromise對(duì)象。無返回值。

示例:

fileio.chmod(path, 0o700).then(function() {
    console.info("chmod succeed");
}).catch(function(err){
    console.info("chmod failed with error:"+ err);
});

fileio.chmod7+

chmod(path: string, mode: number, callback: AsyncCallback): void

改變文件權(quán)限,使用callback異步回調(diào)。

系統(tǒng)能力 :SystemCapability.FileManagement.File.FileIO

參數(shù):

參數(shù)名類型必填說明
pathstring所需變更權(quán)限的文件的應(yīng)用沙箱路徑。
modenumber改變文件權(quán)限,可給定如下權(quán)限,以按位或的方式追加權(quán)限。 - 0o700:所有者具有讀、寫及可執(zhí)行權(quán)限。 - 0o400:所有者具有讀權(quán)限。 - 0o200:所有者具有寫權(quán)限。 - 0o100:所有者具有可執(zhí)行權(quán)限。 - 0o070:所有用戶組具有讀、寫及可執(zhí)行權(quán)限。 - 0o040:所有用戶組具有讀權(quán)限。 - 0o020:所有用戶組具有寫權(quán)限。 - 0o010:所有用戶組具有可執(zhí)行權(quán)限。 - 0o007:其余用戶具有讀、寫及可執(zhí)行權(quán)限。 - 0o004:其余用戶具有讀權(quán)限。 - 0o002:其余用戶具有寫權(quán)限。 - 0o001:其余用戶具有可執(zhí)行權(quán)限。
callbackAsyncCallback異步改變文件權(quán)限之后的回調(diào)。

示例:

fileio.chmod(path, 0o700, function (err) {
    // do something
});

fileio.chmodSync7+

chmodSync(path: string, mode: number): void

以同步方法改變文件權(quán)限。

系統(tǒng)能力 :SystemCapability.FileManagement.File.FileIO

參數(shù):

參數(shù)名類型必填說明
pathstring所需變更權(quán)限的文件的應(yīng)用沙箱路徑。
modenumber改變文件權(quán)限,可給定如下權(quán)限,以按位或的方式追加權(quán)限。 - 0o700:所有者具有讀、寫及可執(zhí)行權(quán)限。 - 0o400:所有者具有讀權(quán)限。 - 0o200:所有者具有寫權(quán)限。 - 0o100:所有者具有可執(zhí)行權(quán)限。 - 0o070:所有用戶組具有讀、寫及可執(zhí)行權(quán)限。 - 0o040:所有用戶組具有讀權(quán)限。 - 0o020:所有用戶組具有寫權(quán)限。 - 0o010:所有用戶組具有可執(zhí)行權(quán)限。 - 0o007:其余用戶具有讀、寫及可執(zhí)行權(quán)限。 - 0o004:其余用戶具有讀權(quán)限。 - 0o002:其余用戶具有寫權(quán)限。 - 0o001:其余用戶具有可執(zhí)行權(quán)限。

示例:

fileio.chmodSync(path, 0o700);

fileio.fstat7+

fstat(fd: number): Promise

基于文件描述符獲取文件狀態(tài)信息,使用Promise異步回調(diào)。

系統(tǒng)能力 :SystemCapability.FileManagement.File.FileIO

參數(shù):

參數(shù)名類型必填說明
fdnumber待獲取文件狀態(tài)的文件描述符。

返回值:

類型說明
Promise<[Stat]>Promise對(duì)象。返回表示文件狀態(tài)的具體信息。

示例:

let fd = fileio.openSync(path);
fileio.fstat(fd).then(function(stat){
    console.info("fstat succeed:"+ JSON.stringify(stat));
}).catch(function(err){
    console.info("fstat failed with error:"+ err);
});

fileio.fstat7+

fstat(fd: number, callback: AsyncCallback): void

基于文件描述符獲取文件狀態(tài)信息,使用callback異步回調(diào)。

系統(tǒng)能力 :SystemCapability.FileManagement.File.FileIO

參數(shù):

參數(shù)名類型必填說明
fdnumber待獲取文件狀態(tài)的文件描述符。
callbackAsyncCallback<[Stat]>異步獲取文件狀態(tài)信息之后的回調(diào)。

示例:

let fd = fileio.openSync(path);
fileio.fstat(fd, function (err) {
    // do something
});

fileio.fstatSync7+

fstatSync(fd: number): Stat

以同步方法基于文件描述符獲取文件狀態(tài)信息。

系統(tǒng)能力 :SystemCapability.FileManagement.File.FileIO

參數(shù):

參數(shù)名類型必填說明
fdnumber待獲取文件狀態(tài)的文件描述符。

返回值:

類型說明
[Stat]表示文件狀態(tài)的具體信息。

示例:

let fd = fileio.openSync(path);
let stat = fileio.fstatSync(fd);

fileio.ftruncate7+

ftruncate(fd: number, len?: number): Promise

基于文件描述符截?cái)辔募褂肞romise異步回調(diào)。

系統(tǒng)能力 :SystemCapability.FileManagement.File.FileIO

參數(shù):

參數(shù)名類型必填說明
fdnumber待截?cái)辔募奈募枋龇?/td>
lennumber文件截?cái)嗪蟮拈L(zhǎng)度,以字節(jié)為單位。

返回值:

類型說明
PromisePromise對(duì)象。無返回值。

示例:

let fd = fileio.openSync(path);
fileio.ftruncate(fd, 5).then(function(err) {    
    console.info("truncate file succeed");
}).catch(function(err){
    console.info("truncate file failed with error:"+ err);
});

fileio.ftruncate7+

ftruncate(fd: number, len: number, callback:AsyncCallback): void

基于文件描述符截?cái)辔募?,使用callback異步回調(diào)。

系統(tǒng)能力 :SystemCapability.FileManagement.File.FileIO

參數(shù):

參數(shù)名類型必填說明
fdnumber待截?cái)辔募奈募枋龇?/td>
lennumber文件截?cái)嗪蟮拈L(zhǎng)度,以字節(jié)為單位。
callbackAsyncCallback回調(diào)函數(shù),本調(diào)用無返回值。

示例:

let fd = fileio.openSync(path);
let len = 5;
fileio.ftruncate(fd, 5, function(err){
    // do something
});

fileio.ftruncateSync7+

ftruncateSync(fd: number, len?: number): void

以同步方法基于文件描述符截?cái)辔募?/p>

系統(tǒng)能力 :SystemCapability.FileManagement.File.FileIO

參數(shù):

參數(shù)名類型必填說明
fdnumber待截?cái)辔募奈募枋龇?/td>
lennumber文件截?cái)嗪蟮拈L(zhǎng)度,以字節(jié)為單位。

示例:

let fd = fileio.openSync(path);
let len = 5;
fileio.ftruncateSync(fd, len);

fileio.truncate7+

truncate(path: string, len?: number): Promise

基于文件路徑截?cái)辔募褂肞romise異步回調(diào)。

系統(tǒng)能力 :SystemCapability.FileManagement.File.FileIO

參數(shù):

參數(shù)名類型必填說明
pathstring待截?cái)辔募膽?yīng)用沙箱路徑。
lennumber文件截?cái)嗪蟮拈L(zhǎng)度,以字節(jié)為單位。

返回值:

類型說明
PromisePromise對(duì)象。無返回值。

示例:

let len = 5;
fileio.truncate(path, len).then(function(){
    console.info("truncate file succeed");
}).catch(function(err){
    console.info("truncate file failed with error:"+ err);
});

fileio.truncate7+

truncate(path: string, len: number, callback:AsyncCallback): void

基于文件路徑截?cái)辔募褂胏allback異步回調(diào)。

系統(tǒng)能力 :SystemCapability.FileManagement.File.FileIO

參數(shù):

參數(shù)名類型必填說明
pathstring待截?cái)辔募膽?yīng)用沙箱路徑。
lennumber文件截?cái)嗪蟮拈L(zhǎng)度,以字節(jié)為單位。
callbackAsyncCallback回調(diào)函數(shù),本調(diào)用無返回值。

示例:

let len = 5;
fileio.truncate(path, len, function(err){
    // do something
});

fileio.truncateSync7+

truncateSync(path: string, len?: number): void

以同步方法基于文件路徑截?cái)辔募?/p>

系統(tǒng)能力 :SystemCapability.FileManagement.File.FileIO

參數(shù):

參數(shù)名類型必填說明
pathstring待截?cái)辔募膽?yīng)用沙箱路徑。
lennumber文件截?cái)嗪蟮拈L(zhǎng)度,以字節(jié)為單位。

示例:

let len = 5;
fileio.truncateSync(path, len);

fileio.readText7+

readText(filePath: string, options?: { position?: number; length?: number; encoding?: string; }): Promise

基于文本方式讀取文件(即直接讀取文件的文本內(nèi)容),使用Promise異步回調(diào)。

系統(tǒng)能力 :SystemCapability.FileManagement.File.FileIO

參數(shù):

參數(shù)名類型必填說明
filePathstring待讀取文件的應(yīng)用沙箱路徑。
optionsObject支持如下選項(xiàng): - position,number類型,表示期望讀取文件的位置??蛇x,默認(rèn)從當(dāng)前位置開始讀取。 - length,number類型,表示期望讀取數(shù)據(jù)的長(zhǎng)度。可選,默認(rèn)緩沖區(qū)長(zhǎng)度減去偏移長(zhǎng)度。 - encoding,string類型,當(dāng)數(shù)據(jù)是 string 類型時(shí)有效,表示數(shù)據(jù)的編碼方式,默認(rèn) 'utf-8',僅支持 'utf-8'。

返回值:

類型說明
PromisePromise對(duì)象。返回讀取文件的內(nèi)容。

示例:

fileio.readText(path).then(function(str) {
    console.info("readText succeed:"+ str);
}).catch(function(err){
    console.info("readText failed with error:"+ err);
});

fileio.readText7+

readText(filePath: string, options: { position?: number; length?: number; encoding?: string; }, callback: AsyncCallback): void

基于文本方式讀取文件(即直接讀取文件的文本內(nèi)容),使用callback異步回調(diào)。

系統(tǒng)能力 :SystemCapability.FileManagement.File.FileIO

參數(shù):

參數(shù)名類型必填說明
filePathstring待讀取文件的應(yīng)用沙箱路徑。
optionsObject支持如下選項(xiàng): - position,number類型,表示期望讀取文件的位置??蛇x,默認(rèn)從當(dāng)前位置開始讀取。 - length,number類型,表示期望讀取數(shù)據(jù)的長(zhǎng)度??蛇x,默認(rèn)緩沖區(qū)長(zhǎng)度減去偏移長(zhǎng)度。 - encoding,string類型,表示數(shù)據(jù)的編碼方式,默認(rèn) 'utf-8',僅支持 'utf-8'。
callbackAsyncCallback回調(diào)函數(shù),返回讀取文件的內(nèi)容。

示例:

fileio.readText(path, { position: 1, encoding: 'UTF-8' }, function(err, str){
    // do something
});

fileio.readTextSync7+

readTextSync(filePath: string, options?: { position?: number; length?: number; encoding?: string; }): string

以同步方法基于文本方式讀取文件(即直接讀取文件的文本內(nèi)容)。

系統(tǒng)能力 :SystemCapability.FileManagement.File.FileIO

參數(shù):

參數(shù)名類型必填說明
filePathstring待讀取文件的應(yīng)用沙箱路徑。
optionsObject支持如下選項(xiàng): - position,number類型,表示期望讀取文件的位置??蛇x,默認(rèn)從當(dāng)前位置開始讀取。 - length,number類型,表示期望讀取數(shù)據(jù)的長(zhǎng)度??蛇x,默認(rèn)緩沖區(qū)長(zhǎng)度減去偏移長(zhǎng)度。 - encoding,string類型,當(dāng)數(shù)據(jù)是 string 類型時(shí)有效,表示數(shù)據(jù)的編碼方式,默認(rèn) 'utf-8',僅支持 'utf-8'。

返回值:

類型說明
string返回讀取文件的內(nèi)容。

示例:

let str = fileio.readTextSync(path, {position: 1, length: 3});

fileio.lstat7+

lstat(path: string): Promise

獲取鏈接信息,使用Promise異步回調(diào)。

系統(tǒng)能力 :SystemCapability.FileManagement.File.FileIO

參數(shù):

參數(shù)名類型必填說明
pathstring目標(biāo)文件的應(yīng)用沙箱路徑。

返回值:

類型說明
Promise<[Stat]>promise對(duì)象,返回文件對(duì)象,表示文件的具體信息,詳情見stat。

示例:

fileio.lstat(path).then(function(stat){
    console.info("get link status succeed:"+ JSON.stringify(stat));
}).catch(function(err){
    console.info("get link status failed with error:"+ err);
});

fileio.lstat7+

lstat(path:string, callback:AsyncCallback): void

獲取鏈接信息,使用callback異步回調(diào)。

系統(tǒng)能力 :SystemCapability.FileManagement.File.FileIO

參數(shù):

參數(shù)名類型必填說明
pathstring目標(biāo)文件的應(yīng)用沙箱路徑。
callbackAsyncCallback<[Stat]>回調(diào)函數(shù),返回文件的具體信息。

示例:

fileio.lstat(path, function (err, stat) {
    // do something
});

fileio.lstatSync7+

lstatSync(path:string): Stat

以同步方法獲取鏈接信息。

系統(tǒng)能力 :SystemCapability.FileManagement.File.FileIO

參數(shù):

參數(shù)名類型必填說明
pathstring目標(biāo)文件的應(yīng)用沙箱路徑。

返回值:

類型說明
[Stat]表示文件的具體信息。

示例:

let stat = fileio.lstatSync(path);

fileio.rename7+

rename(oldPath: string, newPath: string): Promise

重命名文件,使用Promise異步回調(diào)。

系統(tǒng)能力 :SystemCapability.FileManagement.File.FileIO

參數(shù):

參數(shù)名類型必填說明
oldPathstring目標(biāo)文件的當(dāng)前應(yīng)用沙箱路徑。
newPathString目標(biāo)文件的新應(yīng)用沙箱路徑。

返回值:

類型說明
PromisePromise對(duì)象。無返回值。

示例:

let oldPath = path;
let newPath = oldPath + '123';
fileio.rename(oldPath, newPath).then(function() {
    console.info("rename succeed");
}).catch(function(err){
    console.info("rename failed with error:"+ err);
});

fileio.rename7+

rename(oldPath: string, newPath: string, callback: AsyncCallback): void

重命名文件,使用callback異步回調(diào)。

系統(tǒng)能力 :SystemCapability.FileManagement.File.FileIO

參數(shù):

參數(shù)名類型必填說明
oldPathstring目標(biāo)文件的當(dāng)前應(yīng)用沙箱路徑。
newPathString目標(biāo)文件的新應(yīng)用沙箱路徑。
CallbackAsyncCallback異步重命名文件之后的回調(diào)。

示例:

let oldPath = path;
let newPath = oldPath + '123';
fileio.rename(oldPath, newPath, function(err){
});

fileio.renameSync7+

renameSync(oldPath: string, newPath: string): void

以同步方法重命名文件。

系統(tǒng)能力 :SystemCapability.FileManagement.File.FileIO

參數(shù):

參數(shù)名類型必填說明
oldPathstring目標(biāo)文件的當(dāng)前應(yīng)用沙箱路徑。
newPathString目標(biāo)文件的新應(yīng)用沙箱路徑。

示例:

let oldPath = path;
let newPath = oldPath + '123';
fileio.renameSync(oldPath, newPath);

fileio.fsync7+

fsync(fd: number): Promise

同步文件數(shù)據(jù),使用Promise異步回調(diào)。

系統(tǒng)能力 :SystemCapability.FileManagement.File.FileIO

參數(shù):

參數(shù)名類型必填說明
fdnumber待同步文件的文件描述符。

返回值:

類型說明
PromisePromise對(duì)象。無返回值。

示例:

let fd = fileio.openSync(path);
fileio.fsync(fd).then(function(){
    console.info("sync data succeed");
}).catch(function(err){
    console.info("sync data failed with error:"+ err);
});

fileio.fsync7+

fsync(fd: number, callback: AsyncCallback): void

同步文件數(shù)據(jù),使用callback異步回調(diào)。

系統(tǒng)能力 :SystemCapability.FileManagement.File.FileIO

參數(shù):

參數(shù)名類型必填說明
fdnumber待同步文件的文件描述符。
CallbackAsyncCallback異步將文件數(shù)據(jù)同步之后的回調(diào)。

示例:

let fd = fileio.openSync(path);
fileio.fsync(fd, function(err){
    // do something
});

fileio.fsyncSync7+

fsyncSync(fd: number): void

以同步方法同步文件數(shù)據(jù)。

系統(tǒng)能力 :SystemCapability.FileManagement.File.FileIO

參數(shù):

參數(shù)名類型必填說明
fdnumber待同步文件的文件描述符。

示例:

let fd = fileio.openSync(path);
fileio.fsyncSync(fd);

fileio.fdatasync7+

fdatasync(fd: number): Promise

實(shí)現(xiàn)文件內(nèi)容數(shù)據(jù)同步,使用Promise異步回調(diào)。

系統(tǒng)能力 :SystemCapability.FileManagement.File.FileIO

參數(shù):

參數(shù)名類型必填說明
fdnumber待同步文件的文件描述符。

返回值:

類型說明
PromisePromise對(duì)象。無返回值。

示例:

let fd = fileio.openSync(path);
fileio.fdatasync(fd).then(function(err) {
    console.info("sync data succeed");
}).catch(function(err){
    console.info("sync data failed with error:"+ err);
});

fileio.fdatasync7+

fdatasync(fd: number, callback:AsyncCallback): void

實(shí)現(xiàn)文件內(nèi)容數(shù)據(jù)同步,使用callback異步回調(diào)。

系統(tǒng)能力 :SystemCapability.FileManagement.File.FileIO

參數(shù):

參數(shù)名類型必填說明
fdnumber待同步文件的文件描述符。
callbackAsyncCallback異步將文件內(nèi)容數(shù)據(jù)同步之后的回調(diào)。

示例:

let fd = fileio.openSync(path);
fileio.fdatasync (fd, function (err) {
    // do something
});

fileio.fdatasyncSync7+

fdatasyncSync(fd: number): void

以同步方法實(shí)現(xiàn)文件內(nèi)容數(shù)據(jù)同步。

系統(tǒng)能力 :SystemCapability.FileManagement.File.FileIO

參數(shù):

參數(shù)名類型必填說明
fdnumber待同步文件的文件描述符。

示例:

let fd = fileio.openSync(path);
let stat = fileio.fdatasyncSync(fd);

fileio.symlink7+

symlink(target: string, srcPath: string): Promise

基于文件路徑創(chuàng)建符號(hào)鏈接,使用Promise異步回調(diào)。

系統(tǒng)能力 :SystemCapability.FileManagement.File.FileIO

參數(shù):

參數(shù)名類型必填說明
targetstring目標(biāo)文件的應(yīng)用沙箱路徑。
srcPathstring符號(hào)鏈接文件的應(yīng)用沙箱路徑。

返回值:

類型說明
PromisePromise對(duì)象。無返回值。

示例:

let target = path;
let srcPath = target + 'aaa';
fileio.symlink(target, srcPath).then(function() {
    console.info("symlink succeed");
}).catch(function(err){
    console.info("symlink failed with error:"+ err);
});

fileio.symlink7+

symlink(target: string, srcPath: string, callback: AsyncCallback): void

基于文件路徑創(chuàng)建符號(hào)鏈接,使用callback異步回調(diào)。

系統(tǒng)能力 :SystemCapability.FileManagement.File.FileIO

參數(shù):

參數(shù)名類型必填說明
targetstring目標(biāo)文件的應(yīng)用沙箱路徑。
srcPathstring符號(hào)鏈接文件的應(yīng)用沙箱路徑。
callbackAsyncCallback異步創(chuàng)建符號(hào)鏈接信息之后的回調(diào)。

示例:

let target = path;
let srcPath = target + 'aaa';
fileio.symlink(target, srcPath, function (err) {
    // do something
});

fileio.symlinkSync7+

symlinkSync(target: string, srcPath: string): void

以同步的方法基于文件路徑創(chuàng)建符號(hào)鏈接。

系統(tǒng)能力 :SystemCapability.FileManagement.File.FileIO

參數(shù):

參數(shù)名類型必填說明
targetstring目標(biāo)文件的應(yīng)用沙箱路徑。
srcPathstring符號(hào)鏈接文件的應(yīng)用沙箱路徑。

示例:

let target = path;
let srcPath = target + 'aaa';
fileio.symlinkSync(target, srcPath);

fileio.chown7+

chown(path: string, uid: number, gid: number): Promise

基于文件路徑改變文件所有者,使用Promise異步回調(diào)。

系統(tǒng)能力 :SystemCapability.FileManagement.File.FileIO

參數(shù):

參數(shù)名類型必填說明
pathstring待改變文件的應(yīng)用沙箱路徑。
uidnumber新的UID(UserID)。
gidnumber新的GID(GroupID)。

返回值:

類型說明
PromisePromise對(duì)象。無返回值。

示例:

let stat = fileio.statSync(path);
fileio.chown(path, stat.uid, stat.gid).then(function(){
    console.info("chown succeed");
}).catch(function(err){
    console.info("chown failed with error:"+ err);
});

fileio.chown7+

chown(path: string, uid: number, gid: number, callback: AsyncCallback): void

基于文件路徑改變文件所有者,使用callback異步回調(diào)。

系統(tǒng)能力 :SystemCapability.FileManagement.File.FileIO

參數(shù):

參數(shù)名類型必填說明
pathstring待改變文件的應(yīng)用沙箱路徑。
uidnumber新的UID。
gidnumber新的GID。
callbackAsyncCallback異步改變文件所有者之后的回調(diào)。

示例:

let stat = fileio.statSync(path)
fileio.chown(path, stat.uid, stat.gid, function (err){
    // do something
});

fileio.chownSync7+

chownSync(path: string, uid: number, gid: number): void

以同步的方法基于文件路徑改變文件所有者。

系統(tǒng)能力 :SystemCapability.FileManagement.File.FileIO

參數(shù):

參數(shù)名類型必填說明
pathstring待改變文件的應(yīng)用沙箱路徑。
uidnumber新的UID。
gidnumber新的GID。

示例:

let stat = fileio.statSync(path)
fileio.chownSync(path, stat.uid, stat.gid);

fileio.mkdtemp7+

mkdtemp(prefix: string): Promise

創(chuàng)建臨時(shí)目錄,使用Promise異步回調(diào)。

系統(tǒng)能力 :SystemCapability.FileManagement.File.FileIO

參數(shù):

參數(shù)名類型必填說明
prefixstring用隨機(jī)產(chǎn)生的字符串替換以“XXXXXX”結(jié)尾目錄路徑。

返回值:

類型說明
PromisePromise對(duì)象。返回生成的唯一目錄路徑。

示例:

fileio.mkdtemp(path + "XXXX").then(function(path){
    console.info("mkdtemp succeed:"+ path);
}).catch(function(err){
    console.info("mkdtemp failed with error:"+ err);
});

fileio.mkdtemp7+

mkdtemp(prefix: string, callback: AsyncCallback): void

創(chuàng)建臨時(shí)目錄,使用callback異步回調(diào)。

系統(tǒng)能力 :SystemCapability.FileManagement.File.FileIO

參數(shù):

參數(shù)名類型必填說明
prefixstring用隨機(jī)產(chǎn)生的字符串替換以“XXXXXX”結(jié)尾目錄路徑。
callbackAsyncCallback異步創(chuàng)建臨時(shí)目錄之后的回調(diào)。

示例:

fileio.mkdtemp(path + "XXXX", function (err, res) {
    // do something
});

fileio.mkdtempSync7+

mkdtempSync(prefix: string): string

以同步的方法創(chuàng)建臨時(shí)目錄。

系統(tǒng)能力 :SystemCapability.FileManagement.File.FileIO

參數(shù):

參數(shù)名類型必填說明
prefixstring用隨機(jī)產(chǎn)生的字符串替換以“XXXXXX”結(jié)尾目錄路徑。

返回值:

類型說明
string產(chǎn)生的唯一目錄路徑。

示例:

let res = fileio.mkdtempSync(path + "XXXX");

fileio.fchmod7+

fchmod(fd: number, mode: number): Promise

基于文件描述符改變文件權(quán)限,使用Promise異步回調(diào)。

系統(tǒng)能力 :SystemCapability.FileManagement.File.FileIO

參數(shù):

參數(shù)名類型必填說明
fdnumber待改變文件的文件描述符。
modenumber若創(chuàng)建文件,則指定文件的權(quán)限,可給定如下權(quán)限,以按位或的方式追加權(quán)限。 - 0o700:所有者具有讀、寫及可執(zhí)行權(quán)限。 - 0o400:所有者具有讀權(quán)限。 - 0o200:所有者具有寫權(quán)限。 - 0o100:所有者具有可執(zhí)行權(quán)限。 - 0o070:所有用戶組具有讀、寫及可執(zhí)行權(quán)限。 - 0o040:所有用戶組具有讀權(quán)限。 - 0o020:所有用戶組具有寫權(quán)限。 - 0o010:所有用戶組具有可執(zhí)行權(quán)限。 - 0o007:其余用戶具有讀、寫及可執(zhí)行權(quán)限。 - 0o004:其余用戶具有讀權(quán)限。 - 0o002:其余用戶具有寫權(quán)限。 - 0o001:其余用戶具有可執(zhí)行權(quán)限。

返回值:

類型說明
PromisePromise對(duì)象。無返回值。

示例:

let fd = fileio.openSync(path);
let mode = 0o700;
fileio.fchmod(fd, mode).then(function() {
    console.info("chmod succeed");
}).catch(function(err){
    console.info("chmod failed with error:"+ err);
});

fileio.fchmod7+

fchmod(fd: number, mode: number, callback: AsyncCallback): void

基于文件描述符改變文件權(quán)限,使用callback異步回調(diào)。

系統(tǒng)能力 :SystemCapability.FileManagement.File.FileIO

參數(shù):

參數(shù)名類型必填說明
fdnumber待改變文件的文件描述符。
modenumber若創(chuàng)建文件,則指定文件的權(quán)限,可給定如下權(quán)限,以按位或的方式追加權(quán)限。 - 0o700:所有者具有讀、寫及可執(zhí)行權(quán)限。 - 0o400:所有者具有讀權(quán)限。 - 0o200:所有者具有寫權(quán)限。 - 0o100:所有者具有可執(zhí)行權(quán)限。 - 0o070:所有用戶組具有讀、寫及可執(zhí)行權(quán)限。 - 0o040:所有用戶組具有讀權(quán)限。 - 0o020:所有用戶組具有寫權(quán)限。 - 0o010:所有用戶組具有可執(zhí)行權(quán)限。 - 0o007:其余用戶具有讀、寫及可執(zhí)行權(quán)限。 - 0o004:其余用戶具有讀權(quán)限。 - 0o002:其余用戶具有寫權(quán)限。 - 0o001:其余用戶具有可執(zhí)行權(quán)限。
callbackAsyncCallback異步改變文件權(quán)限之后的回調(diào)。

示例:

let fd = fileio.openSync(path);
let mode = 0o700;
fileio.fchmod(fd, mode, function (err) {
    // do something
});

fileio.fchmodSync7+

fchmodSync(fd: number, mode: number): void

以同步方法基于文件描述符改變文件權(quán)限。

系統(tǒng)能力 :SystemCapability.FileManagement.File.FileIO

參數(shù):

參數(shù)名類型必填說明
fdnumber待改變文件的文件描述符。
modenumber若創(chuàng)建文件,則指定文件的權(quán)限,可給定如下權(quán)限,以按位或的方式追加權(quán)限。 - 0o700:所有者具有讀、寫及可執(zhí)行權(quán)限。 - 0o400:所有者具有讀權(quán)限。 - 0o200:所有者具有寫權(quán)限。 - 0o100:所有者具有可執(zhí)行權(quán)限。 - 0o070:所有用戶組具有讀、寫及可執(zhí)行權(quán)限。 - 0o040:所有用戶組具有讀權(quán)限。 - 0o020:所有用戶組具有寫權(quán)限。 - 0o010:所有用戶組具有可執(zhí)行權(quán)限。 - 0o007:其余用戶具有讀、寫及可執(zhí)行權(quán)限。 - 0o004:其余用戶具有讀權(quán)限。 - 0o002:其余用戶具有寫權(quán)限。 - 0o001:其余用戶具有可執(zhí)行權(quán)限。

示例:

let fd = fileio.openSync(path);
let mode = 0o700;
 fileio.fchmodSync(fd, mode);

fileio.createStream7+

createStream(path: string, mode: string): Promise

基于文件路徑打開文件流,使用Promise異步回調(diào)。

系統(tǒng)能力 :SystemCapability.FileManagement.File.FileIO

參數(shù):

參數(shù)名類型必填說明
pathstring待打開文件的應(yīng)用沙箱路徑。
modestring- r:打開只讀文件,該文件必須存在。 - r+:打開可讀寫的文件,該文件必須存在。 - w:打開只寫文件,若文件存在則文件長(zhǎng)度清0,即該文件內(nèi)容會(huì)消失。若文件不存在則建立該文件。 - w+:打開可讀寫文件,若文件存在則文件長(zhǎng)度清0,即該文件內(nèi)容會(huì)消失。若文件不存在則建立該文件。 - a:以附加的方式打開只寫文件。若文件不存在,則會(huì)建立該文件,如果文件存在,寫入的數(shù)據(jù)會(huì)被加到文件尾,即文件原先的內(nèi)容會(huì)被保留。 - a+:以附加方式打開可讀寫的文件。若文件不存在,則會(huì)建立該文件,如果文件存在,寫入的數(shù)據(jù)會(huì)被加到文件尾后,即文件原先的內(nèi)容會(huì)被保留。

返回值:

類型說明
Promise<[Stream]>Promise對(duì)象。返回文件流的結(jié)果。

示例:

fileio.createStream(path, "r+").then(function(stream){
    console.info("createStream succeed");
}).catch(function(err){
    console.info("createStream failed with error:"+ err);
});

fileio.createStream7+

createStream(path: string, mode: string, callback: AsyncCallback): void

基于文件路徑打開文件流,使用callback異步回調(diào)。

系統(tǒng)能力 :SystemCapability.FileManagement.File.FileIO

參數(shù):

參數(shù)名類型必填說明
pathstring待打開文件的應(yīng)用沙箱路徑。
modestring- r:打開只讀文件,該文件必須存在。 - r+:打開可讀寫的文件,該文件必須存在。 - w:打開只寫文件,若文件存在則文件長(zhǎng)度清0,即該文件內(nèi)容會(huì)消失。若文件不存在則建立該文件。 - w+:打開可讀寫文件,若文件存在則文件長(zhǎng)度清0,即該文件內(nèi)容會(huì)消失。若文件不存在則建立該文件。 - a:以附加的方式打開只寫文件。若文件不存在,則會(huì)建立該文件,如果文件存在,寫入的數(shù)據(jù)會(huì)被加到文件尾,即文件原先的內(nèi)容會(huì)被保留。 - a+:以附加方式打開可讀寫的文件。若文件不存在,則會(huì)建立該文件,如果文件存在,寫入的數(shù)據(jù)會(huì)被加到文件尾后,即文件原先的內(nèi)容會(huì)被保留。
callbackAsyncCallback<[Stream]>異步打開文件流之后的回調(diào)。

示例:

fileio.createStream(path, "r+", function(err, stream){
    // do something
});

fileio.createStreamSync7+

createStreamSync(path: string, mode: string): Stream

以同步方法基于文件路徑打開文件流。

系統(tǒng)能力 :SystemCapability.FileManagement.File.FileIO

參數(shù):

參數(shù)名類型必填說明
pathstring待打開文件的應(yīng)用沙箱路徑。
modestring- r:打開只讀文件,該文件必須存在。 - r+:打開可讀寫的文件,該文件必須存在。 - w:打開只寫文件,若文件存在則文件長(zhǎng)度清0,即該文件內(nèi)容會(huì)消失。若文件不存在則建立該文件。 - w+:打開可讀寫文件,若文件存在則文件長(zhǎng)度清0,即該文件內(nèi)容會(huì)消失。若文件不存在則建立該文件。 - a:以附加的方式打開只寫文件。若文件不存在,則會(huì)建立該文件,如果文件存在,寫入的數(shù)據(jù)會(huì)被加到文件尾,即文件原先的內(nèi)容會(huì)被保留。 - a+:以附加方式打開可讀寫的文件。若文件不存在,則會(huì)建立該文件,如果文件存在,寫入的數(shù)據(jù)會(huì)被加到文件尾后,即文件原先的內(nèi)容會(huì)被保留。

返回值:

類型說明
[Stream]返回文件流的結(jié)果。

示例:

let ss = fileio.createStreamSync(path, "r+");

fileio.fdopenStream7+

fdopenStream(fd: number, mode: string): Promise

基于文件描述符打開文件流,使用Promise異步回調(diào)。

系統(tǒng)能力 :SystemCapability.FileManagement.File.FileIO

參數(shù):

參數(shù)名類型必填說明
fdnumber待打開文件的文件描述符。
modestring- r:打開只讀文件,該文件必須存在。 - r+:打開可讀寫的文件,該文件必須存在。 - w:打開只寫文件,若文件存在則文件長(zhǎng)度清0,即該文件內(nèi)容會(huì)消失。若文件不存在則建立該文件。 - w+:打開可讀寫文件,若文件存在則文件長(zhǎng)度清0,即該文件內(nèi)容會(huì)消失。若文件不存在則建立該文件。 - a:以附加的方式打開只寫文件。若文件不存在,則會(huì)建立該文件,如果文件存在,寫入的數(shù)據(jù)會(huì)被加到文件尾,即文件原先的內(nèi)容會(huì)被保留。 - a+:以附加方式打開可讀寫的文件。若文件不存在,則會(huì)建立該文件,如果文件存在,寫入的數(shù)據(jù)會(huì)被加到文件尾后,即文件原先的內(nèi)容會(huì)被保留。

返回值:

類型說明
Promise<[Stream]>Promise對(duì)象。返回文件流的結(jié)果。

示例:

let fd = fileio.openSync(path);
fileio.fdopenStream(fd, "r+").then(function(stream){
    console.info("openStream succeed");
}).catch(function(err){
    console.info("openStream failed with error:"+ err);
});

fileio.fdopenStream7+

fdopenStream(fd: number, mode: string, callback: AsyncCallback): void

基于文件描述符打開文件流,使用callback異步回調(diào)。

系統(tǒng)能力 :SystemCapability.FileManagement.File.FileIO

參數(shù):

參數(shù)名類型必填說明
fdnumber待打開文件的文件描述符。
modestring- r:打開只讀文件,該文件必須存在。 - r+:打開可讀寫的文件,該文件必須存在。 - w:打開只寫文件,若文件存在則文件長(zhǎng)度清0,即該文件內(nèi)容會(huì)消失。若文件不存在則建立該文件。 - w+:打開可讀寫文件,若文件存在則文件長(zhǎng)度清0,即該文件內(nèi)容會(huì)消失。若文件不存在則建立該文件。 - a:以附加的方式打開只寫文件。若文件不存在,則會(huì)建立該文件,如果文件存在,寫入的數(shù)據(jù)會(huì)被加到文件尾,即文件原先的內(nèi)容會(huì)被保留。 - a+:以附加方式打開可讀寫的文件。若文件不存在,則會(huì)建立該文件,如果文件存在,寫入的數(shù)據(jù)會(huì)被加到文件尾后,即文件原先的內(nèi)容會(huì)被保留。
callbackAsyncCallback <[Stream]>異步打開文件流之后的回調(diào)。

示例:

let fd = fileio.openSync(path);
fileio.fdopenStream(fd, "r+", function (err, stream) {
    // do something
});

fileio.fdopenStreamSync7+

fdopenStreamSync(fd: number, mode: string): Stream

以同步方法基于文件描述符打開文件流。

系統(tǒng)能力 :SystemCapability.FileManagement.File.FileIO

參數(shù):

參數(shù)名類型必填說明
fdnumber待打開文件的文件描述符。
modestring- r:打開只讀文件,該文件必須存在。 - r+:打開可讀寫的文件,該文件必須存在。 - w:打開只寫文件,若文件存在則文件長(zhǎng)度清0,即該文件內(nèi)容會(huì)消失。若文件不存在則建立該文件。 - w+:打開可讀寫文件,若文件存在則文件長(zhǎng)度清0,即該文件內(nèi)容會(huì)消失。若文件不存在則建立該文件。 - a:以附加的方式打開只寫文件。若文件不存在,則會(huì)建立該文件,如果文件存在,寫入的數(shù)據(jù)會(huì)被加到文件尾,即文件原先的內(nèi)容會(huì)被保留。 - a+:以附加方式打開可讀寫的文件。若文件不存在,則會(huì)建立該文件,如果文件存在,寫入的數(shù)據(jù)會(huì)被加到文件尾后,即文件原先的內(nèi)容會(huì)被保留。

返回值:

類型說明
[Stream]返回文件流的結(jié)果。

示例:

let fd = fileio.openSync(path);
let ss = fileio.fdopenStreamSync(fd, "r+");

fileio.fchown7+

fchown(fd: number, uid: number, gid: number): Promise

基于文件描述符改變文件所有者,使用Promise異步回調(diào)。

系統(tǒng)能力 :SystemCapability.FileManagement.File.FileIO

參數(shù):

參數(shù)名類型必填說明
fdnumber待改變文件的文件描述符。
uidnumber文件所有者的UID。
gidnumber文件所有組的GID。

返回值:

類型說明
PromisePromise對(duì)象。無返回值。

示例:

let fd = fileio.openSync(path);
let stat = fileio.statSync(path);
fileio.fchown(fd, stat.uid, stat.gid).then(function() {
    console.info("chown succeed");
}).catch(function(err){
    console.info("chown failed with error:"+ err);
});

fileio.fchown7+

fchown(fd: number, uid: number, gid: number, callback: AsyncCallback): void

基于文件描述符改變文件所有者,使用callback異步回調(diào)。

系統(tǒng)能力 :SystemCapability.FileManagement.File.FileIO

參數(shù):

參數(shù)名類型必填說明
fdnumber待改變文件的文件描述符。
uidnumber文件所有者的UID。
gidnumber文件所有組的GID。
callbackAsyncCallback異步改變文件所有者之后的回調(diào)。

示例:

let fd = fileio.openSync(path);
let stat = fileio.statSync(path);
fileio.fchown(fd, stat.uid, stat.gid, function (err){
    // do something
});

fileio.fchownSync7+

fchownSync(fd: number, uid: number, gid: number): void

以同步方法基于文件描述符改變文件所有者。

系統(tǒng)能力 :SystemCapability.FileManagement.File.FileIO

參數(shù):

參數(shù)名類型必填說明
fdnumber待改變文件的文件描述符。
uidnumber文件所有者的UID。
gidnumber文件所有組的GID。

示例:

let fd = fileio.openSync(path);
let stat = fileio.statSync(path);
fileio.fchownSync(fd, stat.uid, stat.gid);

fileio.lchown7+

lchown(path: string, uid: number, gid: number): Promise

基于文件路徑改變文件所有者,更改符號(hào)鏈接本身的所有者,而不是符號(hào)鏈接所指向的實(shí)際文件,使用Promise異步回調(diào)。

系統(tǒng)能力 :SystemCapability.FileManagement.File.FileIO

參數(shù):

參數(shù)名類型必填說明
pathstring待打開文件的應(yīng)用沙箱路徑。
uidnumber新的UID。
gidnumber新的GID。

返回值:

類型說明
PromisePromise對(duì)象。無返回值。

示例:

let stat = fileio.statSync(path);
fileio.lchown(path, stat.uid, stat.gid).then(function() {
    console.info("chown succeed");
}).catch(function(err){
    console.info("chown failed with error:"+ err);
});

fileio.lchown7+

lchown(path: string, uid: number, gid: number, callback: AsyncCallback): void

基于文件路徑改變文件所有者,更改符號(hào)鏈接本身的所有者,而不是更改符號(hào)鏈接所指向的實(shí)際文件,使用callback異步回調(diào)。

系統(tǒng)能力 :SystemCapability.FileManagement.File.FileIO

參數(shù):

參數(shù)名類型必填說明
pathstring待打開文件的應(yīng)用沙箱路徑。
uidnumber新的UID。
gidnumber新的GID。
callbackAsyncCallback異步改變文件所有者之后的回調(diào)。

示例:

let stat = fileio.statSync(path);
fileio.lchown(path, stat.uid, stat.gid, function (err){
    // do something
});

fileio.lchownSync7+

lchownSync(path: string, uid: number, gid: number): void

以同步方法基于文件路徑改變文件所有者,更改符號(hào)鏈接本身的所有者,而不是更改符號(hào)鏈接所指向的實(shí)際文件。

系統(tǒng)能力 :SystemCapability.FileManagement.File.FileIO

參數(shù):

參數(shù)名類型必填說明
pathstring待打開文件的應(yīng)用沙箱路徑。
uidnumber新的UID。
gidnumber新的GID。

示例:

let stat = fileio.statSync(path);
fileio.lchownSync(path, stat.uid, stat.gid);

fileio.createWatcher7+

createWatcher(filename: string, events: number, callback: AsyncCallback): Watcher

監(jiān)聽文件或者目錄的變化,使用callback異步回調(diào)。

系統(tǒng)能力 :SystemCapability.FileManagement.File.FileIO

參數(shù):

參數(shù)名類型必填說明
filenamestring待監(jiān)視文件的應(yīng)用沙箱路徑。
eventsNumber- 1: 監(jiān)聽文件或者目錄是否發(fā)生重命名。 - 2:監(jiān)聽文件或者目錄內(nèi)容的是否修改。 - 3:兩者都有。
callbackAsyncCallback每發(fā)生變化一次,調(diào)用一次此函數(shù)。

返回值:

類型說明
[Watcher]Promise對(duì)象。返回文件變化監(jiān)聽的實(shí)例。

示例:

let filename = path +"/test.txt";
fileio.createWatcher(filename, 1, function(number){
   console.info("Monitoring times: "+number);
});

Readout

僅用于read方法,獲取文件的讀取結(jié)果。

系統(tǒng)能力 :以下各項(xiàng)對(duì)應(yīng)的系統(tǒng)能力均為SystemCapability.FileManagement.File.FileIO。

名稱參數(shù)類型可讀可寫說明
bytesReadnumber實(shí)際讀取長(zhǎng)度。
offsetnumber讀取數(shù)據(jù)相對(duì)于緩沖區(qū)首地址的偏移。
bufferArrayBufer保存讀取數(shù)據(jù)的緩沖區(qū)。

Stat

文件具體信息,在調(diào)用Stat的方法前,需要先通過[stat()]方法(同步或異步)來構(gòu)建一個(gè)Stat實(shí)例。

系統(tǒng)能力 :以下各項(xiàng)對(duì)應(yīng)的系統(tǒng)能力均為SystemCapability.FileManagement.File.FileIO。

屬性

名稱參數(shù)類型可讀可寫說明
devnumber標(biāo)識(shí)包含該文件的主設(shè)備號(hào)。
inonumber標(biāo)識(shí)該文件。通常同設(shè)備上的不同文件的INO不同。
modenumber表示文件類型及權(quán)限,其首 4 位表示文件類型,后 12 位表示權(quán)限。各特征位的含義如下: - 0o170000:可用于獲取文件類型的掩碼。 - 0o140000:文件是套接字。 - 0o120000:文件是符號(hào)鏈接。 - 0o100000:文件是一般文件。 - 0o060000:文件屬于塊設(shè)備。 - 0o040000:文件是目錄。 - 0o020000:文件是字符設(shè)備。 - 0o010000:文件是具名管道,即FIFO。 - 0o0700:可用于獲取用戶權(quán)限的掩碼。 - 0o0400:用戶讀,對(duì)于普通文件,所有者可讀取文件;對(duì)于目錄,所有者可讀取目錄項(xiàng)。 - 0o0200:用戶寫,對(duì)于普通文件,所有者可寫入文件;對(duì)于目錄,所有者可創(chuàng)建/刪除目錄項(xiàng)。 - 0o0100:用戶執(zhí)行,對(duì)于普通文件,所有者可執(zhí)行文件;對(duì)于目錄,所有者可在目錄中搜索給定路徑名。 - 0o0070:可用于獲取用戶組權(quán)限的掩碼。 - 0o0040:用戶組讀,對(duì)于普通文件,所有用戶組可讀取文件;對(duì)于目錄,所有用戶組可讀取目錄項(xiàng)。 - 0o0020:用戶組寫,對(duì)于普通文件,所有用戶組可寫入文件;對(duì)于目錄,所有用戶組可創(chuàng)建/刪除目錄項(xiàng)。 - 0o0010:用戶組執(zhí)行,對(duì)于普通文件,所有用戶組可執(zhí)行文件;對(duì)于目錄,所有用戶組是否可在目錄中搜索給定路徑名。 - 0o0007:可用于獲取其他用戶權(quán)限的掩碼。 - 0o0004:其他讀,對(duì)于普通文件,其余用戶可讀取文件;對(duì)于目錄,其他用戶組可讀取目錄項(xiàng)。 - 0o0002:其他寫,對(duì)于普通文件,其余用戶可寫入文件;對(duì)于目錄,其他用戶組可創(chuàng)建/刪除目錄項(xiàng)。 - 0o0001:其他執(zhí)行,對(duì)于普通文件,其余用戶可執(zhí)行文件;對(duì)于目錄,其他用戶組可在目錄中搜索給定路徑名。
nlinknumber文件的硬鏈接數(shù)。
uidnumber文件所有者的ID。
gidnumber文件所有組的ID。
rdevnumber標(biāo)識(shí)包含該文件的從設(shè)備號(hào)。
sizenumber文件的大小,以字節(jié)為單位。僅對(duì)普通文件有效。
blocksnumber文件占用的塊數(shù),計(jì)算時(shí)塊大小按512B計(jì)算。
atimenumber上次訪問該文件的時(shí)間,表示距1970年1月1日0時(shí)0分0秒的秒數(shù)。
mtimenumber上次修改該文件的時(shí)間,表示距1970年1月1日0時(shí)0分0秒的秒數(shù)。
ctimenumber最近改變文件狀態(tài)的時(shí)間,表示距1970年1月1日0時(shí)0分0秒的秒數(shù)。

isBlockDevice

isBlockDevice(): boolean

用于判斷文件是否是塊特殊文件。一個(gè)塊特殊文件只能以塊為粒度進(jìn)行訪問,且訪問的時(shí)候帶緩存。

系統(tǒng)能力 :SystemCapability.FileManagement.File.FileIO

返回值:

類型說明
boolean表示文件是否是塊特殊設(shè)備。

示例:

let isBLockDevice = fileio.statSync(path).isBlockDevice();

isCharacterDevice

isCharacterDevice(): boolean

用于判斷文件是否是字符特殊文件。一個(gè)字符特殊設(shè)備可進(jìn)行隨機(jī)訪問,且訪問的時(shí)候不帶緩存。

系統(tǒng)能力 :SystemCapability.FileManagement.File.FileIO

返回值:

類型說明
boolean表示文件是否是字符特殊設(shè)備。

示例:

let isCharacterDevice = fileio.statSync(path).isCharacterDevice();

isDirectory

isDirectory(): boolean

用于判斷文件是否是目錄。

系統(tǒng)能力 :SystemCapability.FileManagement.File.FileIO

返回值:

類型說明
boolean表示文件是否是目錄。

示例:

let isDirectory = fileio.statSync(path).isDirectory();

isFIFO

isFIFO(): boolean

用于判斷文件是否是命名管道(有時(shí)也稱為FIFO)。命名管道通常用于進(jìn)程間通信。

系統(tǒng)能力 :SystemCapability.FileManagement.File.FileIO

返回值:

類型說明
boolean表示文件是否是 FIFO。

示例:

let isFIFO = fileio.statSync(path).isFIFO();

isFile

isFile(): boolean

用于判斷文件是否是普通文件。

系統(tǒng)能力 :SystemCapability.FileManagement.File.FileIO

返回值:

類型說明
boolean表示文件是否是普通文件。

示例:

let isFile = fileio.statSync(path).isFile();

isSocket

isSocket(): boolean

用于判斷文件是否是套接字。

系統(tǒng)能力 :SystemCapability.FileManagement.File.FileIO

返回值:

類型說明
boolean表示文件是否是套接字。

示例:

let isSocket = fileio.statSync(path).isSocket();

isSymbolicLink

isSymbolicLink(): boolean

用于判斷文件是否是符號(hào)鏈接。

系統(tǒng)能力 :SystemCapability.FileManagement.File.FileIO

返回值:

類型說明
boolean表示文件是否是符號(hào)鏈接。

示例:

let isSymbolicLink = fileio.statSync(path).isSymbolicLink();

Watcher7+

Watcher是文件變化監(jiān)聽的實(shí)例,調(diào)用Watcher.stop()方法(同步或異步)來停止文件監(jiān)聽。

stop7+

stop(): Promise

關(guān)閉watcher監(jiān)聽,使用Promise異步回調(diào)。

系統(tǒng)能力 :SystemCapability.FileManagement.File.FileIO

示例:

let filename = path +"/test.txt";
let watcher = fileio.createWatcher(filename, 1, function(number){
    console.info("Monitoring times: "+number);
});
watcher.stop().then(function(){
     console.info("close watcher succeed");
});

stop7+

stop(callback: AsyncCallback): void

關(guān)閉watcher監(jiān)聽,使用callback異步回調(diào)。

系統(tǒng)能力 :SystemCapability.FileManagement.File.FileIO

參數(shù):

參數(shù)名類型必填說明
callbackAsyncCallback以異步方法關(guān)閉watcher監(jiān)聽之后的回調(diào)。

示例:

let filename = path +"/test.txt";
let watcher = fileio.createWatcher(filename, 1, function(number){
    console.info("Monitoring times: "+number);
});
watcher.stop(function(){
    console.info("close watcher succeed");
})

Stream

文件流,在調(diào)用Stream的方法前,需要先通過createStream()方法(同步或異步)來構(gòu)建一個(gè)Stream實(shí)例。

close7+

close(): Promise

關(guān)閉文件流,使用Promise異步回調(diào)。

系統(tǒng)能力 :SystemCapability.FileManagement.File.FileIO

返回值:

類型說明
PromisePromise對(duì)象。返回表示異步關(guān)閉文件流的結(jié)果。

示例:

let ss= fileio.createStreamSync(path, "r+");
ss.close().then(function(){
    console.info("close fileStream succeed");
}).catch(function(err){
    console.info("close fileStream  failed with error:"+ err);
});

close7+

close(callback: AsyncCallback): void

異步關(guān)閉文件流,使用callback異步回調(diào)。

系統(tǒng)能力 :SystemCapability.FileManagement.File.FileIO

參數(shù):

參數(shù)名類型必填說明
callbackAsyncCallback異步關(guān)閉文件流之后的回調(diào)。

示例:

let ss= fileio.createStreamSync(path, "r+");
ss.close(function (err) {
    // do something
});

closeSync

closeSync(): void

同步關(guān)閉文件流。

系統(tǒng)能力 :SystemCapability.FileManagement.File.FileIO

示例:

let ss= fileio.createStreamSync(path, "r+");
ss.closeSync();

flush7+

flush(): Promise

刷新文件流,使用Promise異步回調(diào)。

系統(tǒng)能力 :SystemCapability.FileManagement.File.FileIO

返回值:

類型說明
PromisePromise對(duì)象。返回表示異步刷新文件流的結(jié)果。

示例:

let ss= fileio.createStreamSync(path, "r+");
ss.flush().then(function (){
    console.info("flush succeed");
}).catch(function(err){
    console.info("flush failed with error:"+ err);
});

flush7+

flush(callback: AsyncCallback): void

異步刷新文件流,使用callback異步回調(diào)。

系統(tǒng)能力 :SystemCapability.FileManagement.File.FileIO

參數(shù):

參數(shù)名類型必填說明
callbackAsyncCallback異步刷新文件流后的回調(diào)函數(shù)。

示例:

let ss= fileio.createStreamSync(path, "r+");
ss.flush(function (err) {
    // do something
});

flushSync7+

flushSync(): void

同步刷新文件流。

系統(tǒng)能力 :SystemCapability.FileManagement.File.FileIO

示例:

let ss= fileio.createStreamSync(path, "r+");
ss.flushSync();

write7+

write(buffer: ArrayBuffer | string, options?: { offset?: number; length?: number; position?: number; encoding?: string; }): Promise

將數(shù)據(jù)寫入流文件,使用Promise異步回調(diào)。

系統(tǒng)能力 :SystemCapability.FileManagement.File.FileIO

參數(shù):

參數(shù)名類型必填說明
bufferArrayBufferstring
optionsObject支持如下選項(xiàng): - offset,number類型,表示期望寫入數(shù)據(jù)的位置相對(duì)于數(shù)據(jù)首地址的偏移??蛇x,默認(rèn)為0。 - length,number類型,表示期望寫入數(shù)據(jù)的長(zhǎng)度??蛇x,默認(rèn)緩沖區(qū)長(zhǎng)度減去偏移長(zhǎng)度。 - position,number類型,表示期望寫入文件的位置??蛇x,默認(rèn)從當(dāng)前位置開始寫。 - encoding,string類型,當(dāng)數(shù)據(jù)是string類型時(shí)有效,表示數(shù)據(jù)的編碼方式,默認(rèn) 'utf-8'。僅支持 'utf-8'。 約束:offset+length<=buffer.size。

返回值:

類型說明
PromisePromise對(duì)象。返回實(shí)際寫入的長(zhǎng)度。

示例:

let ss= fileio.createStreamSync(path, "r+");
ss.write("hello, world",{offset: 1,length: 5,position: 5,encoding :'utf-8'}).then(function (number){
    console.info("write succeed and size is:"+ number);
}).catch(function(err){
    console.info("write failed with error:"+ err);
});

write7+

write(buffer: ArrayBuffer | string, options: { offset?: number; length?: number; position?: number; encoding?: string; }, callback: AsyncCallback): void

將數(shù)據(jù)寫入流文件,使用callback異步回調(diào)。

系統(tǒng)能力 :SystemCapability.FileManagement.File.FileIO

參數(shù):

參數(shù)名類型必填說明
bufferArrayBufferstring
optionsObject支持如下選項(xiàng): - offset,number類型,表示期望寫入數(shù)據(jù)的位置相對(duì)于數(shù)據(jù)首地址的偏移。可選,默認(rèn)為0。 - length,number類型,表示期望寫入數(shù)據(jù)的長(zhǎng)度??蛇x,默認(rèn)緩沖區(qū)長(zhǎng)度減去偏移長(zhǎng)度。 - position,number類型,表示期望寫入文件的位置??蛇x,默認(rèn)從當(dāng)前位置開始寫。 - encoding,string類型,當(dāng)數(shù)據(jù)是string類型時(shí)有效,表示數(shù)據(jù)的編碼方式,默認(rèn) 'utf-8'。僅支持 'utf-8'。 約束:offset+length<=buffer.size。
callbackAsyncCallback異步寫入完成后執(zhí)行的回調(diào)函數(shù)。

示例:

let ss= fileio.createStreamSync(path, "r+");
ss.write("hello, world", {offset: 1, length: 5, position: 5, encoding :'utf-8'}, function (err, bytesWritten) {
    if (bytesWritten) {
       // do something
       console.info("write succeed and size is:"+ bytesWritten);
    }
});

writeSync7+

writeSync(buffer: ArrayBuffer | string, options?: { offset?: number; length?: number; position?: number; encoding?: string; }): number

以同步方法將數(shù)據(jù)寫入流文件。

系統(tǒng)能力 :SystemCapability.FileManagement.File.FileIO

參數(shù):

參數(shù)名類型必填說明
bufferArrayBufferstring
optionsObject支持如下選項(xiàng): - offset,number類型,表示期望寫入數(shù)據(jù)的位置相對(duì)于數(shù)據(jù)首地址的偏移??蛇x,默認(rèn)為0。 - length,number類型,表示期望寫入數(shù)據(jù)的長(zhǎng)度。可選,默認(rèn)緩沖區(qū)長(zhǎng)度減去偏移長(zhǎng)度。 - position,number類型,表示期望寫入文件的位置??蛇x,默認(rèn)從當(dāng)前位置開始寫。 - encoding,string類型,當(dāng)數(shù)據(jù)是string類型時(shí)有效,表示數(shù)據(jù)的編碼方式,默認(rèn) 'utf-8'。僅支持 'utf-8'。 約束:offset+length<=buffer.size。

返回值:

類型說明
number實(shí)際寫入的長(zhǎng)度。

示例:

let ss= fileio.createStreamSync(path,"r+");
let num = ss.writeSync("hello, world", {offset: 1, length: 5, position: 5, encoding :'utf-8'});

read7+

read(buffer: ArrayBuffer, options?: { position?: number; offset?: number; length?: number; }): Promise

從流文件讀取數(shù)據(jù),使用Promise異步回調(diào)。

系統(tǒng)能力 :SystemCapability.FileManagement.File.FileIO

參數(shù):

參數(shù)名類型必填說明
bufferArrayBuffer用于讀取文件的緩沖區(qū)。
optionsObject支持如下選項(xiàng): - offset,number類型,表示將數(shù)據(jù)讀取到緩沖區(qū)的位置,即相對(duì)于緩沖區(qū)首地址的偏移??蛇x,默認(rèn)為0。 - length,number類型,表示期望讀取數(shù)據(jù)的長(zhǎng)度??蛇x,默認(rèn)緩沖區(qū)長(zhǎng)度減去偏移長(zhǎng)度。 - position,number類型,表示期望讀取文件的位置??蛇x,默認(rèn)從當(dāng)前位置開始讀。 約束:offset+length<=buffer.size。

返回值:

類型說明
Promise<[ReadOut]>Promise對(duì)象。返回讀取的結(jié)果。

示例:

let ss = fileio.createStreamSync(path, "r+");
ss.read(new ArrayBuffer(4096), {offset: 1, length: 5, position: 5}).then(function (readOut){
    console.info("read data succeed");
    console.log(String.fromCharCode.apply(null, new Uint8Array(readOut.buffer)));
}).catch(function(err){
    console.info("read data failed with error:"+ err);
});

read7+

read(buffer: ArrayBuffer, options: { position?: number; offset?: number; length?: number; }, callback: AsyncCallback): void

從流文件讀取數(shù)據(jù),使用callback異步回調(diào)。

系統(tǒng)能力 :SystemCapability.FileManagement.File.FileIO

參數(shù):

參數(shù)名類型必填說明
bufferArrayBuffer用于讀取文件的緩沖區(qū)。
optionsObject支持如下選項(xiàng): - offset,number類型,表示將數(shù)據(jù)讀取到緩沖區(qū)的位置,即相對(duì)于緩沖區(qū)首地址的偏移??蛇x,默認(rèn)為0。 - length,number類型,表示期望讀取數(shù)據(jù)的長(zhǎng)度。可選,默認(rèn)緩沖區(qū)長(zhǎng)度減去偏移長(zhǎng)度。 - position,number類型,表示期望讀取文件的位置??蛇x,默認(rèn)從當(dāng)前位置開始讀。 約束:offset+length<=buffer.size。
callbackAsyncCallback<[ReadOut]>異步從流文件讀取數(shù)據(jù)之后的回調(diào)。

示例:

let ss = fileio.createStreamSync(path, "r+");
ss.read(new ArrayBuffer(4096),{offset: 1, length: 5, position: 5},function (err, readOut) {
    if (readOut) {
        console.info("read data succeed");
        console.log(String.fromCharCode.apply(null, new Uint8Array(readOut.buffer)));
    }
});

readSync7+

readSync(buffer: ArrayBuffer, options?: { position?: number; offset?: number; length?: number; }): number

以同步方法從流文件讀取數(shù)據(jù)。

系統(tǒng)能力 :SystemCapability.FileManagement.File.FileIO

參數(shù):

參數(shù)名類型必填說明
bufferArrayBuffer用于讀取文件的緩沖區(qū)。
optionsObject支持如下選項(xiàng): - offset,number類型,表示將數(shù)據(jù)讀取到緩沖區(qū)的位置,即相對(duì)于緩沖區(qū)首地址的偏移。可選,默認(rèn)為0。 - length,number類型,表示期望讀取數(shù)據(jù)的長(zhǎng)度??蛇x,默認(rèn)緩沖區(qū)長(zhǎng)度減去偏移長(zhǎng)度。 - position,number類型,表示期望讀取文件的位置??蛇x,默認(rèn)從當(dāng)前位置開始讀。 約束:offset+length<=buffer.size。

返回值:

類型說明
number實(shí)際讀取的長(zhǎng)度。

示例:

let ss = fileio.createStreamSync(path, "r+");
let num = ss.readSync(new ArrayBuffer(4096), {offset: 1, length: 5, position: 5});

Dir

管理目錄,在調(diào)用Dir的方法前,需要先通過opendir方法(同步或異步)來構(gòu)建一個(gè)Dir實(shí)例。

read

read(): Promise

讀取下一個(gè)目錄項(xiàng),使用Promise異步回調(diào)。

系統(tǒng)能力 :SystemCapability.FileManagement.File.FileIO

返回值:

類型說明
Promise<[Dirent]>Promise對(duì)象。返回表示異步讀取目錄項(xiàng)的結(jié)果。

示例:

dir.read().then(function (dirent){
    console.log("read succeed:"+JSON.stringify(dirent));
}).catch(function(err){
    console.info("read failed with error:"+ err);
});

read

read(callback: AsyncCallback): void

讀取下一個(gè)目錄項(xiàng),使用callback異步回調(diào)。

系統(tǒng)能力 :SystemCapability.FileManagement.File.FileIO

參數(shù):

參數(shù)名類型必填說明
callbackAsyncCallback<[Dirent]>異步讀取下一個(gè)目錄項(xiàng)之后的回調(diào)。

示例:

dir.read(function (err, dirent) {
    if (dirent) {
        // do something
        console.log("read succeed:"+JSON.stringify(dirent));
    }
});

readSync

readSync(): Dirent

同步讀取下一個(gè)目錄項(xiàng)。

系統(tǒng)能力 :SystemCapability.FileManagement.File.FileIO

返回值:

類型說明
[Dirent]表示一個(gè)目錄項(xiàng)。

示例:

let dirent = dir.readSync();

close7+

close(): Promise

異步關(guān)閉目錄,使用promise形式返回結(jié)果。目錄被關(guān)閉后,Dir中持有的文件描述將被釋放,后續(xù)將無法從Dir中讀取目錄項(xiàng)。

系統(tǒng)能力 :SystemCapability.FileManagement.File.FileIO

示例:

dir.close().then(function(err){
    console.info("close dir successfully");
});

close7+

close(callback: AsyncCallback): void

異步關(guān)閉目錄,使用callback形式返回結(jié)果。目錄被關(guān)閉后,Dir中持有的文件描述將被釋放,后續(xù)將無法從Dir中讀取目錄項(xiàng)。

系統(tǒng)能力 :SystemCapability.FileManagement.File.FileIO

示例:

dir.close(function(err){
    console.info("close dir successfully");
});

closeSync

closeSync(): void

用于關(guān)閉目錄。目錄被關(guān)閉后,Dir中持有的文件描述將被釋放,后續(xù)將無法從Dir中讀取目錄項(xiàng)。

系統(tǒng)能力 :SystemCapability.FileManagement.File.FileIO

示例:

dir.closeSync();

Dirent

在調(diào)用Dirent的方法前,需要先通過[dir.read()]方法(同步或異步)來構(gòu)建一個(gè)Dirent實(shí)例。

系統(tǒng)能力 :以下各項(xiàng)對(duì)應(yīng)的系統(tǒng)能力均為SystemCapability.FileManagement.File.FileIO。

屬性

名稱參數(shù)類型可讀可寫說明
namestring目錄項(xiàng)的名稱。

isBlockDevice

isBlockDevice(): boolean

用于判斷當(dāng)前目錄項(xiàng)是否是塊特殊文件。一個(gè)塊特殊文件只能以塊為粒度進(jìn)行訪問,且訪問的時(shí)候帶緩存。

系統(tǒng)能力 :SystemCapability.FileManagement.File.FileIO

返回值:

類型說明
boolean表示當(dāng)前目錄項(xiàng)是否是塊特殊設(shè)備。

示例:

let dir = fileio.opendirSync(path);
let isBLockDevice = dir.readSync().isBlockDevice();

isCharacterDevice

isCharacterDevice(): boolean

用于判斷當(dāng)前目錄項(xiàng)是否是字符特殊設(shè)備。一個(gè)字符特殊設(shè)備可進(jìn)行隨機(jī)訪問,且訪問的時(shí)候不帶緩存。

系統(tǒng)能力 :SystemCapability.FileManagement.File.FileIO

返回值:

類型說明
boolean表示當(dāng)前目錄項(xiàng)是否是字符特殊設(shè)備。

示例:

let dir = fileio.opendirSync(path);
let isCharacterDevice = dir.readSync().isCharacterDevice();

isDirectory

isDirectory(): boolean

用于判斷當(dāng)前目錄項(xiàng)是否是目錄。

系統(tǒng)能力 :SystemCapability.FileManagement.File.FileIO

返回值:

類型說明
boolean表示當(dāng)前目錄項(xiàng)是否是目錄。

示例:

let dir = fileio.opendirSync(path);
let isDirectory = dir.readSync().isDirectory();

isFIFO

isFIFO(): boolean

用于判斷當(dāng)前目錄項(xiàng)是否是命名管道(有時(shí)也稱為FIFO)。命名管道通常用于進(jìn)程間通信。

系統(tǒng)能力 :SystemCapability.FileManagement.File.FileIO

返回值:

類型說明
boolean表示當(dāng)前目錄項(xiàng)是否是FIFO。

示例:

let dir = fileio.opendirSync(path);
let isFIFO = dir.readSync().isFIFO();

isFile

isFile(): boolean

用于判斷當(dāng)前目錄項(xiàng)是否是普通文件。

系統(tǒng)能力 :SystemCapability.FileManagement.File.FileIO

返回值:

類型說明
boolean表示當(dāng)前目錄項(xiàng)是否是普通文件。

示例:

let dir = fileio.opendirSync(path);
let isFile = dir.readSync().isFile();

isSocket

isSocket(): boolean

用于判斷當(dāng)前目錄項(xiàng)是否是套接字。

系統(tǒng)能力 :SystemCapability.FileManagement.File.FileIO

返回值:

類型說明
boolean表示當(dāng)前目錄項(xiàng)是否是套接字。

示例:

let dir = fileio.opendirSync(path);
let isSocket = dir.readSync().isSocket();

isSymbolicLink

isSymbolicLink(): boolean

用于判斷當(dāng)前目錄項(xiàng)是否是符號(hào)鏈接。

系統(tǒng)能力 :SystemCapability.FileManagement.File.FileIO

返回值:

類型說明
boolean表示當(dāng)前目錄項(xiàng)是否是符號(hào)鏈接。HarmonyOSOpenHarmony鴻蒙文檔籽料:mau123789是v直接拿

新文檔.png

示例:

let dir = fileio.opendirSync(path);
let isSymbolicLink = dir.readSync().isSymbolicLink();

審核編輯 黃宇

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 接口
    +關(guān)注

    關(guān)注

    33

    文章

    8355

    瀏覽量

    150517
  • 鴻蒙
    +關(guān)注

    關(guān)注

    57

    文章

    2287

    瀏覽量

    42629
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    esp8266那個(gè)模塊能發(fā)文件嗎?

    esp8266那個(gè)模塊能發(fā)文件嗎怎么發(fā)高手指點(diǎn)一下
    發(fā)表于 07-03 03:34

    esp8266收發(fā)文件中的接收固件該怎么處理呢?

    我想用esp8266 來做stm32的固件升級(jí) 那這樣的話就需要接收esp8266就需要接收發(fā)過來的固件(文件),這個(gè)接收固件(bin文件)怎么做處理呢? 求高手指教,之前也提問過一個(gè)收發(fā)文件的問題 ,感覺還不是太清楚
    發(fā)表于 07-31 00:29

    鴻蒙設(shè)備學(xué)習(xí)菜鳥指南》之 【五、搭建開發(fā)環(huán)境】

    全套開發(fā)環(huán)境? Linux系統(tǒng):同上 開發(fā)環(huán)境建立后,我們要做的第一件事情,就是在建立一個(gè)目錄,名字叫做OHOS,后面我們的開發(fā)文件,都放在這個(gè)目錄內(nèi),便于統(tǒng)一
    發(fā)表于 10-30 13:59

    sdk5鴻蒙利用文件管理器獲取文件Uri的過程

    )); } 捕捉(異常e){系統(tǒng)。出.println(e.toString()); }}} }}文件最大可以選擇500個(gè),它返回的uri好像是安卓的uri,所以需要轉(zhuǎn)換成鴻蒙的,這樣子就到了看路徑的形式,他應(yīng)該是把文件弄到了
    發(fā)表于 04-27 11:03

    在網(wǎng)頁(yè)遠(yuǎn)程前面板中,觸發(fā)文件對(duì)話框子VI沒有反應(yīng) 要怎么解決

    想實(shí)現(xiàn)通過網(wǎng)頁(yè)遠(yuǎn)程前面板,上傳文件到程序中這個(gè)功能,但是在網(wǎng)頁(yè)中點(diǎn)擊按鈕觸發(fā)文件對(duì)話框按鈕沒有反應(yīng)
    發(fā)表于 05-30 15:57

    嵌入式linux系統(tǒng)開發(fā)文件類型

    、符號(hào)鏈接文件、管道文件、套接字文件、字符設(shè)備文件、塊設(shè)備文件。下面尚觀教育小編給同學(xué)們講解嵌入式linux
    發(fā)表于 08-27 11:31 ?388次閱讀

    自制一款鴻蒙應(yīng)用文件管理

    在涉及應(yīng)用內(nèi)部存儲(chǔ)的開發(fā)時(shí),常常翻閱手機(jī)自帶的文件管理檢查。正好在學(xué)習(xí)文件管理的接口,想著實(shí)現(xiàn)一個(gè)第三方組件用于當(dāng)前應(yīng)用的
    的頭像 發(fā)表于 03-08 14:22 ?1717次閱讀

    文件管理開發(fā)指南全新登場(chǎng),快來了解如何訪問各類文件

    在應(yīng)用開發(fā)的過程中,我們經(jīng)常會(huì)用到各種各樣的文件,例如文檔、圖片、音頻、視頻等,如何管理和訪問這些文件?應(yīng)用沙箱如何使用?應(yīng)用如何選擇和保存用戶文件
    的頭像 發(fā)表于 06-09 09:10 ?503次閱讀

    鴻蒙開發(fā)實(shí)戰(zhàn):【文件管理

    文件管理相關(guān)的功能,使用[@ohos.multimedia.medialibrary]、[@ohos.filemanagement.userFileManager]?、[@
    的頭像 發(fā)表于 03-20 21:57 ?569次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>開發(fā)</b>實(shí)戰(zhàn):【<b class='flag-5'>文件</b><b class='flag-5'>管理</b>】

    鴻蒙開發(fā)文件管理:【@ohos.document (文件交互)】

    通過文件管理器選擇文件,異步返回文件URI,使用promise形式返回結(jié)果。
    的頭像 發(fā)表于 06-11 17:51 ?369次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>開發(fā)文件</b><b class='flag-5'>管理</b>:【@<b class='flag-5'>ohos</b>.document (<b class='flag-5'>文件</b>交互)】

    鴻蒙開發(fā)文件管理:【@ohos.environment (目錄環(huán)境能力)】

    該模塊提供環(huán)境目錄能力,獲取內(nèi)存存儲(chǔ)根目錄、公共文件根目錄的JS接口。
    的頭像 發(fā)表于 06-13 10:27 ?377次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>開發(fā)文件</b><b class='flag-5'>管理</b>:【@<b class='flag-5'>ohos</b>.environment (目錄環(huán)境能力)】

    鴻蒙開發(fā)文件管理:【@ohos.fileManager (公共文件訪問與管理)】

    該模塊提供公共文件訪問和管理的服務(wù)接口,向下對(duì)接底層文件管理服務(wù),如媒體庫(kù)、外卡管理;向上對(duì)應(yīng)用程序提供公共
    的頭像 發(fā)表于 06-12 17:00 ?657次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>開發(fā)文件</b><b class='flag-5'>管理</b>:【@<b class='flag-5'>ohos</b>.fileManager (公共<b class='flag-5'>文件</b>訪問與<b class='flag-5'>管理</b>)】

    鴻蒙開發(fā)文件管理:【@ohos.securityLabel (數(shù)據(jù)標(biāo)簽)】

    該模塊提供文件數(shù)據(jù)安全等級(jí)的相關(guān)功能:向應(yīng)用程序提供查詢、設(shè)置文件數(shù)據(jù)安全等級(jí)的JS接口。
    的頭像 發(fā)表于 06-13 17:04 ?240次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>開發(fā)文件</b><b class='flag-5'>管理</b>:【@<b class='flag-5'>ohos</b>.securityLabel (數(shù)據(jù)標(biāo)簽)】

    鴻蒙開發(fā)文件管理:【@ohos.statfs (statfs)】

    該模塊提供文件系統(tǒng)相關(guān)存儲(chǔ)信息的功能,向應(yīng)用程序提供獲取文件系統(tǒng)總字節(jié)數(shù)、空閑字節(jié)數(shù)的JS接口。
    的頭像 發(fā)表于 06-13 09:46 ?226次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>開發(fā)文件</b><b class='flag-5'>管理</b>:【@<b class='flag-5'>ohos</b>.statfs (statfs)】

    鴻蒙開發(fā)文件管理:【@ohos.volumeManager (卷管理)】

    該模塊提供卷、磁盤查詢和管理的相關(guān)功能:包括查詢卷信息,對(duì)卷的掛載卸載、對(duì)磁盤分區(qū)以及卷的格式化等功能。
    的頭像 發(fā)表于 06-14 10:12 ?329次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>開發(fā)文件</b><b class='flag-5'>管理</b>:【@<b class='flag-5'>ohos</b>.volumeManager (卷<b class='flag-5'>管理</b>)】