var fs = require('fs'); var filename = '1.txt'; fs.readFile(filename,function(err,data){ if(err){ console.log('文件读取失败'); }else{ console.log(data);//<Buffer 61 62 63 20 77 6f 72 6c 64 20 6c 61 6c 61 6c 61> console.log(data.toString());//'abc world lalala' } });
fs.readFileSync(file[, options])fs.readFile的同步版本。返回file的内容
如果指定了encoding选项,则该函数返回一个字符串,否则返回一个buffer
var fs = require('fs'); var filename = '1.txt'; var result = fs.readFileSync(filename); console.log(result);//<Buffer 61 62 63 20 77 6f 72 6c 64 20 6c 61 6c 61 6c 61> console.log(result.toString());'abc world lalala'
4、删除文件 fs.unlink(path, callback)参数如下:
path - 文件路径。
callback - 回调函数,没有参数。
var fs = require('fs'); var filename = '1.txt'; fs.unlink(filename, function(err) { if (err) { return console.log('删除失败'); } console.log("删除成功"); });
fs.unlinkSync(path)fs.unlink(path, callback)的同步版本,返回值为undefined
var fs = require('fs'); var filename = '1.txt'; fs.unlink(filename);
5、重命名 fs.rename(oldPath, newPath, callback)参数如下:
oldPath <String> | <Buffer>
newPath <String> | <Buffer>
callback <Function> 回调只有一个可能的异常参数
var fs = require('fs'); var filename = 'a.txt'; fs.rename(filename,'2.new.txt',function(err){ console.log(err);//null })
fs.renameSync(oldPath, newPath)fs.rename(oldPath, newPath, callback)的同步版本,返回undefined
var fs = require('fs'); var filename = '2.new.txt'; var result = fs.renameSync(filename,'a.txt');
6、文件信息 fs.stat(path, callback)fs.stat()执行后,会将stats类的实例返回给其回调函数。可通过stats类中的提供方法判断文件的相关属性
参数如下:
path - 文件路径。
callback - 回调函数,带有两个参数如:(err, stats), stats 是 fs.Stats 对象
var fs = require('fs'); var filename = 'a.txt'; fs.stat(filename,function(err,stats){ console.log(err);//null /* { dev: 223576, mode: 33206, nlink: 1, uid: 0, gid: 0, rdev: 0, blksize: undefined, ino: 7599824371527537, size: 0, blocks: undefined, atime: 2017-06-03T14:18:15.370Z, mtime: 2017-06-03T14:18:15.370Z, ctime: 2017-06-03T16:32:05.776Z, birthtime: 2017-06-03T14:18:15.370Z } */ console.log(stats); });
stats类中的方法有
stats.isFile() 如果是文件返回 true,否则返回 false。
stats.isDirectory() 如果是目录返回 true,否则返回 false。
stats.isBlockDevice() 如果是块设备返回 true,否则返回 false。
stats.isCharacterDevice() 如果是字符设备返回 true,否则返回 false。
stats.isSymbolicLink() 如果是软链接返回 true,否则返回 false。
stats.isFIFO() 如果是FIFO,返回true,否则返回false。FIFO是UNIX中的一种特殊类型的命令管道。
stats.isSocket() 如果是 Socket 返回 true,否则返回 false。
var fs = require('fs'); var filename = 'a.txt'; fs.stat(filename,function(err,stats){ console.log(stats.isFile());//true });
fs.statSync(path)fs.stat(path, callback)方法的同步版本,返回一个 fs.Stats 实例
var fs = require('fs'); var filename = 'a.txt'; var result = fs.statSync(filename); /* { dev: 223576, mode: 33206, nlink: 1, uid: 0, gid: 0, rdev: 0, blksize: undefined, ino: 7599824371527537, size: 0, blocks: undefined, atime: 2017-06-03T14:18:15.370Z, mtime: 2017-06-03T14:18:15.370Z, ctime: 2017-06-03T16:32:05.776Z, birthtime: 2017-06-03T14:18:15.370Z } */ console.log(result);
7、监听 fs.watch(filename[, options][, listener])该方法用于监视filename的变化,filename可以是一个文件或一个目录。返回的对象是一个fs.FSWatcher
参数如下
filename <String> | <Buffer>
options <String> | <Object> 参数可选,如果options是一个字符串,则它指定了encoding。否则options应该以一个对象传入
persistent <Boolean> 指明如果文件正在被监视,进程是否应该继续运行。默认为true
recursive <Boolean> 指明是否全部子目录应该被监视,或只是当前目录。 适用于当一个目录被指定时,且只在支持的平台。默认为false
encoding <String> 指定用于传给监听器的文件名的字符编码。默认为'utf8'
listener <Function> 回调函数有两个参数 (eventType, filename)。 eventType可以是'rename'或'change',filename是触发事件的文件的名称