const fs = require(‘fs’);
fs.open(’./home’, ‘rs+’, (err, fd) => {}) 打开文件
fs.stat(’./home/index.js’, (err, stat) => {})获取文件信息
fs.writeFile(file, data[, options], callback) 写入文件
读取文件 fd 通过open读取的数据
buffer - 数据写入的缓冲区。
offset - 缓冲区写入的写入偏移量。
length - 要从文件中读取的字节数。
position - 文件读取的起始位置,如果 position 的值为 null,则会从当前文件指针的位置读取。
bytes 读取到的字节
补充知识 Buffer缓冲区 alloc()指定大小 .allocUnsafe()不会被初始化
fs.read(fd, buffer, offset, length, position, callback)
const buf = new Buffer.alloc(1024);
fs.open(’./home/index.js’, ‘rs+’, (err, fd) => {})
截取文件
fs.ftruncateSync(fd, len) 同步
fs.ftruncate(fd, len, callback) 异步
fs.truncate(path, len, callback)
fs.truncateSync(path, len)
fs.read(fd, buf, 0, buf.length, 0, (err, bytes) => {}) 读取文件
fs.close(fd, (err) => {}) 关闭文件
fs.unlink(path, callback) 删除文件
fs.mkdir(path[, options], callback) 创建目录/文件
fs.readdir(path, callback) 读取目录err 为错误信息,files 为 目录下的文件数组列表。
fs.rmdir("./rmdir",err=>{}); 删除目录
fs.rename(‘rmdir’, ‘newPath’, err=>{}) 异步文件名修改名称
改变文件所有权
fs.chownSync(path, uid, gid) 同步
fs.fchownSync(fd, uid, gid)
fs.lchownSync(fd, uid, gid)
fs.chown(path, uid, gid, callback) 异步
fs.fchown(fd, uid, gid, callback)
fs.lchown(fd, uid, gid, callback)
const fs = require('fs');
//打开文件
fs.open('./home', 'rs+', (err, fd) => {
if (err) {
return console.error(err);
}
console.error(fd);
console.log("文件打开成功!");
})
// 获取文件信息
fs.stat('./home/index.js', (err, stat) => {
if (err) {
return console.log(err);
}
console.log(stat);
})
// 写入文件
// fs.writeFile(file, data[, options], callback)
fs.writeFile('./demo/index.js', '111', (err) => {
err && console.log(err);
})
//读取文件 //fd 通过open读取的数据
//buffer - 数据写入的缓冲区。
//offset - 缓冲区写入的写入偏移量。
//length - 要从文件中读取的字节数。
//position - 文件读取的起始位置,如果 position 的值为 null,则会从当前文件指针的位置读取。
//bytes 读取到的字节
//fs.read(fd, buffer, offset, length, position, callback)
//补充知识 Buffer缓冲区 alloc()指定大小 .allocUnsafe()不会被初始化
var buf = new Buffer.alloc(1024);
fs.open('./home/index.js', 'rs+', (err, fd) => {
if (err) {
return console.error('打开失败',err);
}
//截取文件 此为异步。因而读取文件和关闭文件需要此函数回调内完成
// fs.ftruncateSync(fd, len) 同步
// fs.ftruncate(fd, len, callback) 异步
// fs.truncate(path, len, callback)
// fs.truncateSync(path, len)
fs.truncate('./demo/index.js', 1, err=>{
console.log(err);
})
fs.ftruncate(fd, 10, err=>{
err&&console.log('截取失败',err);
fs.read(fd, buf, 0, buf.length, 0, (err, bytes) => {
err && console.log('读取失败',err);
console.log(buf.slice(0, bytes).toString());// 根据设置
// console.log(buf.toString());//
})
fs.close(fd, (err) => {
//无参数
err && console.log('关闭失败',err);
console.log('关闭成功');
})
})
//关闭文件
})
// 删除文件
// fs.unlink(path, callback)
// fs.unlink('./demo/index.js',err=>{
// err&console.log('删除失败',err);
// })
// 创建目录/文件
// fs.mkdir(path[, options], callback)
fs.mkdir("./demo/index.js",err=>{
err&&console.log('目录创建失败',err);
});
// 读取目录err 为错误信息,files 为 目录下的文件数组列表。
// fs.readdir(path, callback)
fs.readdir('./demo', (err,files)=>{
err&&console.log('目录创建失败',err);
console.log(files);
})
// 删除目录
// fs.rmdir("./rmdir",err=>{
// err&console.log('删除目录失败',err);
// });
//异步文件名修改名称
fs.rename('rmdir', 'newPath', err=>{
err&console.log(err);
})
// 改变文件所有权
// fs.chownSync(path, uid, gid) 同步
// fs.fchownSync(fd, uid, gid)
// fs.lchownSync(fd, uid, gid)
// fs.chown(path, uid, gid, callback) 异步
// fs.fchown(fd, uid, gid, callback)
// fs.lchown(fd, uid, gid, callback)