js浏览器端没有提供文件操作API

而nodejs提供了

 

node中文网

 

 

 

process模板使用时不需要通过require()函数来加载该模块,可以直接使用

而fs模板,在使用时必须通过require()加载,var fs=require('fs')

原因,process是全局模块

 

fs.writeFile()直接写入文件

 

//1.加载文件操作模块,fs模块

var fs=require('fs');

 

//2.实现文件写入操作

var msg='Hello World,你好世界!';

 

fs.writeFile('./1.txt',msg,'utf8',function(err){

if(err){

console.log('写文件出错了!具体错误:'+err);

}

console.log('ok');

}

)

 

 

 

 

//---------实现文件读取操作

//1.加载文件操作模块,fs模块

var fs=require('fs');

 

//2.调用fs.readFile()方法读取文件 也是异步执行

//在读取文件时,如果传了编码utf8参数,会自动把data转换字符串

fs.readFile('./1.txt','utf8',function(err,data){

if(err){

throw err;

}

//data 参数的数据类型是一个Buffer对象,里面保存的就是一个一个的字节(理解为字节数组)

//把Buffer对象转换为字符串,调用tostring()方法 ,不传utf8参数,默认也是utf8

// console.log(data.toString('utf8'));

console.log(data);

});

 

 

 

 

// './1.txt'指的是相对路径,是相对于运行时的路径,比如文件在c盘,你在d盘执行node就会出错

所有要用绝对路径

 

//解决在文件读取中,./相对路径的问题

//解决: __dirname(当前正在执行的js文件所在目录)

__filename(当前正在执行的js文件完整路径) 加上文件名

 

这两个变量看似全局,但并非全局

(function(__dirname,__filename,x,y,,,){

j//s文件代码

})(__dirname,filename,..)

它只是本地传的一个变量,所以都可以用

 

//var filename=__dirname+'\\'+'1.txt'; //1.要判断前面路径是否右斜杠,2.在Linux系统是/

var filename=path.join(__dirname,'1.txt');//用path.join不需要估计上面问题

 

 

fs.mkdir('./test-mkdir',function(err){

if(err){

console.log(err)

}else{

console.log('创建成功');

}

});

 

 

 

err-first(错误优先)

Logo

CSDN联合极客时间,共同打造面向开发者的精品内容学习社区,助力成长!

更多推荐