Nodejs如何复制文件

前端之家收集整理的这篇文章主要介绍了Nodejs如何复制文件前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

前端童鞋都知道,javascript是没有权限操作磁盘文件的,server童鞋一向都很鄙视。但是nodejs可谓让咱们前端扬眉吐气啊,最近在学node,其强大的功能让人异常激动和兴奋。今天就学习了它怎么读写文件

首先需要引入fs模块,这是nodejs自带的。

var fs=require("fs"); 具体可参考Nodejs API:http://www.w3cfuns.com/tools.PHP?mod=booknodejs

主要用到了两个方法

1、fs.readFile(filename,[encoding],[callback])

这是异步读取文件,filename是文件路径,encoding是编码格式,callback是回调函数

异步读取一个文件的所有内容,例子如下:

这里我使用的是本地测试文件

文件--------'); var fs = require('fs'); fs.readFile('test.txt','utf-8',function(err,data) { if (err) { console.log("读取失败"); } else { console.log(data); return data; } }); console.log('--------读取结束--------'); }

2、fs.writeFile(filename,data,encoding='utf8',[callback]) 写文件

文件已保存"); } }); }

错误代码:copyFile.js文件

文件--------'); var fs = require('fs'); fs.readFile('test.txt',data) { if (err) { console.log("读取失败"); } else { console.log(data); return data; } }); console.log('--------读取结束--------'); }

function writeFile(data){
fs.writeFile("test2.txt",function(error){
if(error){
throw error;
}else{
console.log("文件已保存");
}
});
}
function copyFile(){
var txt=readFile();
writeFile(txt);
}
copyFile();

在终端运行node copyFile.js结果如下:

注意事项:

1、文件编码,开始的时候我直接在本地新建一个txt文档,读取的时候发现结果始终是aaaaaaa这样的,结果发现用编辑打开是时候里面是乱码,其次,最好带上encoding,否则它会按照buffer读取。

2、同步执行问题。

上面的代码是有问题的,我把读取文件和写入文件方法分开写的,本来是想把test.txt文件中的内容复制到test2.txt,但是读取文件是异步执行的,也就是说谁也不知道它何年马月执行完毕,所以test.txt得到的结果是undefined。

正确的方法应该是读取完毕后执行写入文件

文件--------'); var fs = require('fs'); fs.readFile('test.txt',data) { if (err) { console.log("读取失败"); } else { writeFile(data) return data; } }); console.log('--------读取结束--------'); }

function writeFile(data){
console.log(data);
fs.writeFile("test2.txt",'utf8',function(error){
if(error){
throw error;
}else{
console.log("文件已保存");
}
});
}

copyFile();

以上就是本文的全部内容,希望对大家的学习有所帮助。

原文链接:https://www.f2er.com/nodejs/49745.html

猜你在找的Node.js相关文章