node之文件系统File System

Posted leaf930814

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了node之文件系统File System相关的知识,希望对你有一定的参考价值。

一、文件读取

 文件读取又分为同步读取和异步读取

//1、文件同步读取
const bufferStr = fs.readFileSync(‘./file/test.txt‘);

console.log(bufferStr);  
// 因为没有声明encoding 所以返回的是二进制数据
//<Buffer 48 65 6c 6c 6f 20 57 6f 72 6c 64 21>

const str = fs.readFileSync(‘./file/test.txt‘,{
	encoding:‘utf-8‘
});

console.log(str);
//Hello world!

//错误处理 try{ var errStr = fs.readFileSync(‘test.txt‘); }catch(err){ console.log(errStr); } //因为文件不存在,所以 打印出 undefined //2、文件异步读取 fs.readFile(‘./file/test.txt‘,{encoding:‘utf-8‘}, (err,data) =>{ if(err) throw err; console.log(‘2.1读取数据成功,数据内容为:‘+ data); });

  

二、文件写入

文件写入包括:fs.writeFile(异步)、fs.writeFileSync(同步)

格式:fs.writeFile(filename, data, [options], callback)

[options]
@param {Object} [options]
@param {String} options.encoding 编码,默认是utf8
@param {Number} options.mode=438 模式
@param {String} options.flag=w 写文件的模式
@param {Function} callback 回调方法

const fileName = ‘wirteFile_01.txt‘;

fs.writeFile(fileName, ‘Hello World !‘, (err) => {
    if(err) throw err;
    console.log(fileName + ‘不存在,被创建了!‘);
});

//往存在的文件内写内容
fs.writeFile(fileName, ‘no pain no gain‘, (err) => {
    if(err) throw err;
    console.log(fileName + ‘文件被修改了!‘);
});

//往文件内追加内容
fs.writeFile(fileName, ‘stay hungry stay foolish‘,{flag : ‘a‘}, (err) => {
    if(err) throw err;
    console.log(fileName + ‘文件被修改了,内容追加!‘);
});

  

fs.writeFileSync(同步)

与异步差不多,就是没有回调。

 

三.文件删除

//异步
fs.unlink(‘./file/test.txt‘, (err) => {
  if (err) throw err;
  console.log(‘成功删除file中的test.txt‘);
});

//同步
fs.unlinkSync(‘./file/test.txt‘, (err) => {
  if (err) throw err;
  console.log(‘成功删除file中的test.txt‘);
});

  

四、文件的监听事件

//文件的事件监听
fs.watch(‘./file‘, {encoding:‘utf-8‘}, (eventType, filename) =>{
	if(filename){
		console.log(‘文件名:‘ + filename + ‘事件类型:‘ + eventType);
	}
});

//文件名:test3.txt事件类型:rename
//文件名:hhh.txt事件类型:rename
//文件名:hhh.txt事件类型:change

  

参考:官方文档

以上是关于node之文件系统File System的主要内容,如果未能解决你的问题,请参考以下文章

Node.js - File System

node.js 的系统模块——fs文件操作

我的Android进阶之旅关于Android平台获取文件的mime类型:为啥不传小写后缀名就获取不到mimeType?为啥android 4.4系统获取不到webp格式的mimeType呢?(代码片段

我的Android进阶之旅关于Android平台获取文件的mime类型:为啥不传小写后缀名就获取不到mimeType?为啥android 4.4系统获取不到webp格式的mimeType呢?(代码片段

node 读取文件

如何在node中运行下面的IPFS示例?