Node.js--fs 文件操作

process 模块 在使用的时候无需通过 require() 函数来加载该模块,可以直接使用。
fs 模块,在使用的时候,必须通过 require() 函数来加载该模块,方可使用。
原因:process 模块是全局的模块,而 fs 模块不是全局模块。全局模块可以直接使用,而非全局模块需要通过 require('')  加载该模块。
 

一、实现文件写入操作

 1 //1.加载文件操作模块,fs 模块
 2 var fs = require('fs');
 3 
 4 //2.实现文件写入操作
 5 var msg = "hello world,你好世界";
 6 
 7 //调用 fs.writeFile() 进行文件写入 
 8 // fs.writeFile() 是异步方法
 9 // fs.writeFile('写入文件的路径','要写入的数据','文档编码格式','回调函数')
10 fs.writeFile('hello.txt', msg, 'utf8', (err) => {
11     //如果 err===null,表示文件写入
12     //只要 err 里面不是null,就表示写入文件失败了!
13     if (err) {
14         console.log('写入文件出错拉!具体错误:' + err)
15     } else {
16         console.log('ok');
17     }
18 });

二、实现文件读取操作

 1 //1.加载文件操作模块,fs 模块
 2 var fs = require('fs');
 3 
 4 //2.调用 fs.readFile() 方法来读取文件
 5 // fs.readFile('读取文件的路径','文件编码格式','回调函数')
 6 //在读取文件的时候,如果传递了编码格式,那么回调函数中的 data默认就会转换为 字符串,否则data 参数的数据是一个 Buffer 对象,里面保存的就是一个一个的字节(理解为字节数组)
 7 //把 Buffer 对象转换为字符串,调用 toString() 方法
 8 
 9 fs.readFile('./hello.txt', 'utf8', (err, data) => {
10     if (err) {
11         throw err;
12     } else {
13         console.log(data);
14     }
15 });

 

1.读取文件中的路径问题

 ./  相对路径,相对的执行 node 命令的路径,而不是相对于正在执行的这个 js 文件来查找 hello.txt

解决在文件读取中 ./ 相对路径的问题
解决方法:使用  __dirname、__filename

__dirname:表示,当前正在执行的 js 文件所在的目录
___filename:表示,当前正在执行的 js 文件的完整路径
 
// console.log(__dirname);   C:\Users\zhuyujie\Desktop\nodejs\1.fs
// console.log(__filename);   C:\Users\zhuyujie\Desktop\nodejs\1.fs\2.fs_readFile.js

注:__dirname、___filename并不是全局的
 
应该将上面代码的路径修改成:
 1 var fs = require('fs');
 2 
 3 // var filename= __dirname+'\\'+'hello.txt'  (不推荐使用)
 4 
 5 //推荐使用通过 path 模块进行路径拼接
 6 var path = require('path');
 7 
 8 var filename = path.join(__dirname, 'hello.txt')
 9 
10 // console.log(filename);
11 
12 fs.readFile(filename, 'utf8', (err, data) => {
13     if (err) {
14         throw err;
15     }
16     console.log(data);
17 
18 });

 三、创建文件夹

1 var fs=require('fs');
2 
3 fs.mkdir('test-mkdir',(err)=>{
4 if (err) {
5     console.log('创建目录出错了,详情'+err);
6 } else {
7     console.log('创建目录成功');
8 }
9 });

 

 
 
posted @ 2019-09-27 23:04  思猿客  阅读(2502)  评论(0编辑  收藏  举报