node中fs模块的基本使用

/**

  • NodeJS 中,标识位代表着对文件的操作方式,如可读、可写、即可读又可写等等,在下面用一张表来表示文件操作的标识位和其对应的含义。

符号 含义
r 读取文件,如果文件不存在则抛出异常。
r+ 读取并写入文件,如果文件不存在则抛出异常。
rs 读取并写入文件,指示操作系统绕开本地文件系统缓存。
w 写入文件,文件不存在会被创建,存在则清空后写入。
wx 写入文件,排它方式打开。
w+ 读取并写入文件,文件不存在则创建文件,存在则清空后写入。
wx+ 和 w+ 类似,排他方式打开。
a 追加写入,文件不存在则创建文件。
ax 与 a 类似,排他方式打开。
a+ 读取并追加写入,不存在则创建。
ax+ 与 a+ 类似,排他方式打开。
上面表格就是这些标识位的具体字符和含义,但是 flag 是不经常使用的,不容易被记住,所以在下面总结了一个加速记忆的方法。

r:读取
w:写入
s:同步
+:增加相反操作
x:排他方式
r+ 和 w+ 的区别,当文件不存在时, r+ 不会创建文件,而会抛出异常,但 w+ 会创建文件;如果文件存在, r+ 不会自动清空文件,但 w+ 会自动把已有文件的内容清空。
*/

//文件读取

/**
 * 文件读取
 * 同步:readFileSync 
 * 第一个参数:读取的路径或文件标识符
 * 第二个参数:options,默认为null,其中有编码格式,标识位(默认为r)
 * 返回值:文件的内容,如果没有指定编码格式,则默认内容为Buffer
 * 
 * 异步:readFile
 * 和同步不同的是第三个参数,由于是异步,所以第三个参数为回调函数,并没有返回值
 */
/*const fileRead = fs.readFileSync("test2.txt", "utf-8");//同步读取
fs.readFile("test2.txt", "utf-8", (err, data) => {
    console.log('异步读取', data)
});
console.log('同步读取', fileRead);*/

//文件写入

/**
 * 文件写入
 * 同步:writeFileSync
 * 第一个参数:写入文件的路径或标识符
 * 第二个参数:写入的数据,类型为String或Buffer
 * 
 * 异步:writeFile
 * 前两个参数和同步写入相同,但最后一个参数为回调,且只有异常返回,没有内容返回
 */
/*fs.writeFileSync("test2.txt", "我是同步写入的小小鸟" + "名字");//同步写入
fs.writeFile("test2.txt", "我是异步写入的小小鸟哈哈哈哈", err => {
    fs.readFile("test2.txt", "utf-8", (err, data) => {
        console.log('异步读取', data)
    });
})*/;//异步写入

//文件追加写入

/**
 * 文件追加写入
 * 同步:和上一个不同的是 使用fs.appendFileSync追加写入
 * 异步:和同步文件追加不同的是第三个参数为回调函数
 */
/*fs.appendFileSync("test2.txt", "我是同步追加进去的小小鸟呵呵呵"+'\n');
console.log('读取同步追加的小小鸟  =  ', fs.readFileSync("test2.txt", "utf-8"));

fs.appendFile("test2.txt","我是异步添加进去的小小鸟呦"+'\n',err=>{
    console.log('读取异步追加的小小鸟  =  ', fs.readFileSync("test2.txt", "utf-8"));
});*/

//文件拷贝写入

/**
 * 文件拷贝写入
 * 同步:copyFileSync
 * 第一个参数:被拷贝的路径或标识符
 * 第二个参数:目标路径或目标标识符
 * 
 * 异步:
 * 和同步不同的是第三个参数为回调函数
 */
/*fs.copyFileSync("test2.txt", "test2Copy.txt");
console.log(fs.readFileSync("test2Copy.txt", "utf-8"));

fs.copyFile("test2.txt", "test2CopyOptions.txt", err => {
    console.log(fs.readFileSync("test2CopyOptions.txt", "utf-8"));
});*/

//文件打开

/**
 * 文件打开
 * 第一个参数:文件路径或标识符
 * 第二个参数:文件的权限操作标识符
 * 异步:open
 * 同步:openSync
 */
/*fs.open("test2.txt","r",(err,data)=>{    
    console.log('异步打开文件',data);
});*/

//查看文件目录的操作权限

/**
 * 查看文件目录的操作权限
 * 如果有操作权限则没有返回值,否则跑出异常
 */
/*try {
    fs.accessSync("test2.txt");
    console.log('文件可读可写');
} catch (error) {
    console.log('文件不可访问');
}*/

//查看文件属性信息

/**
 * 获取文件属性信息,如创建时间,修改时间,占用字节等
 * 
 */
/*console.log(fs.statSync("test2.txt"));*/

参考文章:
参考文章链接

猜你喜欢

转载自blog.csdn.net/qq_42427109/article/details/88795179