FS文件系统
第一次用这个的时候非常爽,可以在代码层编写“增删改查”文件的功能。分解里面提供的方法,接下来我们从头创建开始,最后删除文件结束,一套流程接下fs文件系统的神奇。
要使用fs文件系统就要引用,否则无法实现功能,代码如下
//引入文件系统
var fs = require('fs');
新建目录:mkdir
//引入文件系统
var fs = require('fs'); //创建目录
fs.mkdir('./html',function(err){
if(err){
console.log(err);
}else{
console.log('创建目录成功!');
}
});
第一步完成了,在当前项目中已经存在一个叫html的文件夹,当我想拿mkdir去创建单独文件是无法实现的,起结果还是一个文件夹,怎么去创建单独的文件呢?
新建文件:writeFlie
//引入文件系统
var fs = require('fs'); //创建文件
fs.writeFile('./html/html.txt',function(err){
if(err){
console.log(err);
}else{
console.log('创建文件成功!');
}
});
执行之后,在html文件夹下又多了一个html.txt类型的文件,对于上段代码可重复操作,因为它既能写又能创建文件。
接下来又要考虑一个问题,既然有文件了,但是里面内容怎么去编写,还是同一个方法,就是多了一个参数变化,从下面代码中体现。
//引入文件系统
var fs = require('fs'); var _txt = 'hello node.js'; //创建文件
fs.writeFile('./html/html.txt',_txt,function(err){
if(err){
console.log(err);
}else{
console.log('创建文件成功!');
}
});
定义了一个_txt变量,放入到writeFile函数中去。这样它就可以在html.txt文件中写入新的内容了。同时这个函数也可以当做更新操作,把原文件内容重新定义。"增删改查",writeFile占据了3样功能,太喜欢这个方式了。
接下来不需这个文件的时候就需要删除操作,fs提供了一个方法
删除文件:unlink
//引入文件系统
var fs = require('fs'); //删除文件
fs.unlink('./html/html.txt',function(err){
if(err){
console.log(err);
}else{
console.log('删除文件成功!');
}
});
上面一套简单的流程走完,还有很多方法没有说,接下来一个个来:
能创建目录就能删除目录,
删除目录:rmdir (如果文件夹中存在单独文件,此操作会抛出异常)
//引入文件系统
var fs = require('fs');
//删除目录
fs.rmdir('./html',function(err){
if(err){
console.log(err);
}else{
console.log('删除目录成功!')
}
});
运行结果:
如果文件下还存在文件,抛异常,运行结果:
如果对文件不想任何有改动的操作,就只为读取,文件系统提供了readdir函数
读取目录或文件:readdir
//引入文件系统
var fs = require('fs');
//读取目录
fs.readdir('./index',function(err,data){
if(err){
console.log(err);
}else{
console.log('读文件成功!'+ data);
}
});
只读到文件夹层级,就会把此文件夹下的文件读取出来
读取到单独文件的运行结果:
readdir返回结果是以数组形式呈现
查看路径是否存在:exists
首先说明下我的工程目录,看截图
我要找一下当前目录是否存在的操作:
//引入文件系统
var fs = require('fs');
var _path = __dirname + "/klm";
//判断
fs.exists(_path,function(exist){
if(exist){
console.log(exist + "路径存在...");
}else{
console.log('目录路径不存在');
}
});
如果存在结果是布尔值true
在fs文件系统也提供了同步操作:writeFileSync(同步写入),readFileSync(同步读取),mkdirSync(同步创建),这里区别就是异步I/O和同步I/O,node.js主要运用异步I/O去处理,提高响应性能,对于同步I/O看什么场景需求了。
打开文件open:
这个方法有些特殊,它提供了几种参数方式。这些方式对于打开文件方式起到很重要的作用。
1. “r”已读取文件方式打开
2. "r+"已读写文件方式打开
3. "w"已写入方式打开,如果文件不存在则自动创建
4. “w+”已读写方式打开,如果文件不存在则自动创建
5. "a"已追加模式打开,如果文件不存在则自动创建
6. “a+”已读取追加模式打开,如果文件不存在则自动创建
例子:
//引入文件系统
var fs = require('fs');
fs.open('./index/aa.txt','r',function(open){
if(open){
console.log(open);
}else{
console.log('操作成功');
}
});
这段代码第二个参数就是设置打开模式用的。