文件系统操作

来源:互联网 发布:魔伴windows黄金账号 编辑:程序博客网 时间:2024/06/18 04:54
/** * Created on 2017/11/16. *///异步和同步// Node.js 文件系统(fs 模块)模块中的方法均有异步和同步版本,例如读取文件内容的函数有异步的 fs.readFile() 和同步的 fs.readFileSync()// 异步的方法函数最后一个参数为回调函数,回调函数的第一个参数包含了错误信息(error)var fs = require("fs");//异步读取,性能更快、没有阻塞fs.readFile('input.txt', function (err, data) {    if (err) {        return console.error(err);    }    console.log('异步读取:' + data.toString());});//同步读取var data = fs.readFileSync('input.txt');console.log("同步读取:" + data.toString());console.log("程序执行完毕");//异步打开文件  fs.open(path, flags--文件打开的行为, mode, callback)console.log("准备打开文件");fs.open('input.txt', 'r+', function (err, fd) {    if (err) {        return console.error(err);    }    console.log('文件打开成功!');});//异步获取文件信息 fs.stat(path,callback)fs.stat('index.js', function (err, stats) {    //stats类:stats.isFile() stats.isDirectory() stats.isBlockDevice()  stats.isCharacterDevice()    //stats.isSymbolicLink()  stats.isFIFO()  stats.isSocket()    if (err) {        return console.error(err);    }    console.log(stats);    console.log('读取文件信息成功!');    //检测文件类型    console.log("是否为文件(isFile)" + stats.isFile());    console.log("是否为目录(isDirectory):" + stats.isDirectory());});//异步写入文件(若文件存在会覆盖)  fs.writeFile(file, data, options, callback)console.log("准备写入文件");fs.writeFile('input1.txt', '我是通过写入的文件内容!', function (err) {    if (err) {        return console.error(err);    }    console.log("数据写入成功!");    console.log("读取写入的数据!");    fs.readFile('input1.txt', function (err, data) {        if (err) {            return console.error(err);        }        console.log('异步读取文件数据:' + data.toString());    })});//异步读取文件 fs.read(fd--open方法返回的文件描述符, buffer, offset, length, position, callback)//关闭文件  fs.close(fd, callback)var buf = new Buffer(1024);console.log("准备打开已存在的文件!");fs.open('input.txt', 'r+', function (err, fd) {    if (err) {        return console.error(err);    }    console.log('文件打开成功!');    console.log('准备读取文件:');    fs.read(fd, buf, 0, buf.length, 0, function (err, bytes) {        if (err) {            console.log(err);        }        console.log(bytes + " 字节被读取");        //仅输出读取的字节        if (bytes > 0) {            console.log(buf.slice(0, bytes).toString());        }        //关闭文件        fs.close(fd, function (err) {            if (err) {                console.log(err);            }            console.log("文件关闭成功");        });    });});//截取文件  fs.ftruncate(fd, len, callback)var buf1 = new Buffer(1024);console.log('准备打开文件!');fs.open('input.txt', 'r+', function (err, fd) {    if (err) {        return console.error(err);    }    console.log("文件打开成功!");    console.log("截取10字节后的文件内容。");    //截取文件    fs.ftruncate(fd, 10, function (err) {        if (err) {            console.log(err);        }        console.log("文件截取成功。");        console.log("读取相同的文件");        fs.read(fd, buf1, 0, buf1.length, 0, function (err, bytes) {            if (err) {                console.log(err);            }            if (bytes > 0) {                console.log(buf1.slice(0, bytes).toString());            }            //关闭文件            fs.close(fd, function (err) {                if (err) {                    console.log(err);                }                console.log('文件关闭成功!');            });        });    });});//删除文件  fs.unlink(path,callback)console.log("准备删除文件!");fs.unlink("input2.txt", function (err) {    if (err) {        return console.error(err);    }    console.log("文件删除成功!");});//创建目录  fs.mkdir(path[, mode], callback)console.log('创建目录create/');fs.mkdir("create/", function (err) {    if (err) {        return console.error(err);    }    console.log("目录创建成功。");});//读取目录  fs.readdir(path, callback)console.log("查看create目录");// "/create/":表示从当前盘符开始,去掉/,表示当前目录开始fs.readdir("create/", function (err, files) {    if (err) {        return console.error(err);    }    console.log("查看create目录成功!");    files.forEach(function (file) {        console.log(file);    });});//删除目录  fs.rmdir(path, callback)console.log("准备删除目录 create/");fs.rmdir("create/test/", function (err) {    if (err) {        return console.error(err);    }    console.log("读取create/目录");    fs.readdir("create/", function (err, files) {        if (err) {            return console.error(err);        }        files.forEach(function (file) {            console.log(file);        })    })});
原创粉丝点击