标签:修改 管道 读取文件 改名字 方式 mdi 管道流 实现 功能
fs模块用于文件的读写等操作。
该模块有如下这些方法:
const fs = require(‘fs‘);
fs.stat(‘test.html‘,function(err,stats){
if(err){
console.log(err);
}else{
console.log(‘文件:‘ + stats.isFile()); //true
console.log(‘目录:‘ + stats.isDirectory()); //false
}
});
接受如下几个参数:
callback :回调,传递异常参数err
fs.mkdir(‘css‘,function(err){
if(err){
console.log(err);
}else{
console.log("创建成功");
}
});
callback {Function} 回调,传递一个异常参数err。
var str = "Hello Node.js";
fs.writeFile(‘write.txt‘, str, ‘utf8‘, function (err) {
if (err) {
console.log(err);
}else{
console.log("创建成功");
}
});
如果该文件不存在则创建该名称文件并写入数据。如果多次写入的话,那么后面写入的内容会覆盖前面写入的内容。
用法与writeFile
相同,只是对此写入的话不会覆盖之前的数据,而是在其后追加数据。
回调函数中的data
即包含了读取的数据。
fs.readFile(‘write.txt‘,function(err,data){
if(err){
console.log(err);
}else{
console.log(data.toString());
}
});
fs.readdir(‘css‘,function(err,data){
if (err){
console.log(err);
}else{
console.log(data);
}
});
不过这样只能获取第一级目录
fs.rename(‘html/index.html‘,‘html/news.html‘,function(err){
if (err) {
console.log(err);
} else {
console.log(‘修改名字成功‘);
}
})
这样就可以把index.html
文件名修改为news.html
。
这个方法还可以实现文件剪切功能:
fs.rename(‘html/css/basic.css‘,‘html/style.css‘,function(err){
if(err){
console.log(err);
return false;
}
console.log(‘剪切成功‘);
})
这样就可以把html/css/basic.css
剪切到html/style.css
。
fs.rmdir(‘text‘,function(err){
if(err){
console.log(err);
return false;
}
console.log(‘删除目录成功‘);
})
这里的删除只能删除空目录。
fs.unlink(‘index.txt‘,function(err){
if(err){
console.log(err);
return false;
}
console.log(‘删除文件成功‘);
})
这种方式读取文件是分块读取的
// 创建一个可以读取的流,读取文件 input.txt 中
var readStream=fs.createReadStream(‘input.txt‘);
var str=‘‘;/*保存数据*/
var count=0; /*次数*/
//触发data事件,开始取读数据
readStream.on(‘data‘,function(chunk){
str+=chunk;
count++;
})
//触发end事件,读取完成
readStream.on(‘end‘,function(chunk){
console.log(count);
console.log(str);
})
//读取失败
readStream.on(‘error‘,function(err){
console.log(err);
})
这种读取方式很高效,适合取读大批量数据。如果所读数据量不是很大的话使用上面的readFile
方法即可。
var data = ‘我是从数据库获取的数据,我要保存到文件中去\n‘;
// 创建一个可以写入的流,写入到文件 output.txt 中
var writerStream = fs.createWriteStream(‘output.txt‘);
//开始写入数据
writerStream.write(data,‘utf8‘);
//标记写入完成
writerStream.end();
//触发finish事件,完成写入
writerStream.on(‘finish‘,function(){
console.log(‘写入完成‘);
})
//失败
writerStream.on(‘error‘,function(){
console.log(‘写入失败‘);
})
同样,如果要写入的文件不存在就创建该文件再写入。
管道提供了一个输出流到输入流的机制。通常我们用于从一个流中获取数据并将数据传递到另外的一个流中。
// 创建一个可读流,这是管道的输出端
var readerStream = fs.createReadStream(‘input.txt‘);
// 创建一个可写流,这是管道的输入端
var writerStream = fs.createWriteStream(‘output.txt‘);
// 管道读写操作
// 读取 input.txt 文件内容,并将内容写入到 output.txt 文件中
readerStream.pipe(writerStream);
console.log("程序执行完毕");
标签:修改 管道 读取文件 改名字 方式 mdi 管道流 实现 功能
原文地址:http://www.cnblogs.com/hedawei/p/7989171.html