fs.readFile("/etc/passwd", function (err, data) { if (err) throw err; console.log(data);});这里我使用的是本地测试文件:function readFile(){console.log("--------开始读取文件--------");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])function writeFile(data){fs.writeFile("test2.txt",data,function(error){if(error){throw error;}else{console.log("文件已保存");}});}错误代码:copyFile.js文件var fs=require("fs");function readFile(){console.log("--------开始读取文件--------");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("--------读取结束--------");}function writeFile(data){fs.writeFile("test2.txt",data,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");function copyFile(){console.log("--------开始读取文件--------");var fs = require("fs");fs.readFile("test.txt", "utf-8", function(err, data) {if (err) {console.log("读取失败");} else {writeFile(data)return data;}});console.log("--------读取结束--------");}function writeFile(data){console.log(data);fs.writeFile("test2.txt",data,"utf8",function(error){if(error){throw error;}else{console.log("文件已保存");}});}copyFile();以上就是本文的全部内容,希望对大家的学习有所帮助。