Node.js的fs文件模块的语法及使用案例

一、简介

fs模块就是Nodejs中的文件系统模块(file system)
用于进行和文件相关的操作

二、语法

1、fs.stat

作用:检测是文件还是目录

语法:fs.stat("文件路径",回调函数)

var fs=require("fs");

fs.stat("FsTest\\dir",function(error,stats)
{
    if (error)
    {
        console.log(error);
        return false;
    }
    else
    {
        console.log("文件:"+stats.isFile());
        console.log("目录:"+stats.isDirectory());
    }
})

目录:
在这里插入图片描述
输出:
在这里插入图片描述


2、fs.mkdir

作用:创建目录

语法:mkdir(目录路径,目录权限 默认0777(可省略),回调函数)
若同名文件(文件夹)已存在 则会报错

var fs=require("fs");

fs.mkdir("FsTest\\css",function(err)
{
    if (err)
    {
        console.log(err);
        return false;
    }
    else
    {
        console.log("创建目录成功");
    }
})

3、fs.writeFile

作用:写入内容

语法:writeFile(文件名,要写入的数据,字符集(可省略),回调函数)
若要写入的文件不存在 则会先创建后再写入
若已存在 则会覆盖原有内容

var fs=require("fs");

fs.writeFile("FsTest\\t.txt","你好",function(err)
{
    if (err)
    {
        console.log(err);
        return false;
    }
    else
    {
        console.log("写入成功");
    }
})

4、fs.appendFile

作用:追加内容

语法:appendFile(文件名,要追加的数据,字符集(可省略),回调函数)
若要写入的文件不存在 则会先创建后再写入
若已存在 则会追加到原有内容后面

var fs=require("fs");

fs.appendFile("FsTest\\tt.txt","你好222","utf8",function(err)
{
    if (err)
    {
        console.log(err);
        return false;
    }
    else
    {
        console.log("追加成功");
    }
})

5、fs.readFile

作用:读取文件

语法:readFile(文件名,字符集(可省略),回调函数)

var fs=require("fs");

fs.readFile("FsTest\\tt.txt","utf8",function(err,data)
{
    if (err)
    {
        console.log(err);
        return false;
    }
    else
    {
        console.log(data);
    }
})

6、fs.readdir

作用:读取目录

语法:readdir(目录名,回调函数)
将目录下的文件和文件夹全都获取到

var fs=require("fs");

fs.readdir("FsTest\\dir",function(err,data)
{
    if (err)
    {
        console.log(err);
        return false;
    }
    else
    {
        console.log(data);
    }
})

目录:
在这里插入图片描述
输出:
在这里插入图片描述


7、fs.rename

作用1:修改文件名

语法:rename(旧名称,新名称,回调函数)
用途:比如 浏览器点击的时候 可以直接改变目录名称

var fs=require("fs");

// rename(旧名称,新名称,回调函数)
fs.rename("FsTest\\dir\\index.html","FsTest\\dir\\aaa.html",function(err)
{
    if (err)
    {
        console.log(err);
        return false;
    }
    else
    {
        console.log("改名成功");
    }
})
作用2:剪切文件

语法:rename(旧目录,新目录,回调函数)

fs.rename("FsTest\\dir\\aaa.html","FsTest\\dir\\css\\zzz.html",function(err)
{
    if (err)
    {
        console.log(err);
        return false;
    }
    else
    {
        console.log("剪切成功");
    }
})

8、fs.rmdir

作用:删除目录

语法:rmdir(目录名,回调函数)
该方法只能删除目录 并不能删除文件 若要删除文件需用专门删除文件的方法unlink

var fs=require("fs");

fs.rmdir("FsTest\\dir\\js",function(err)
{
    if (err)
    {
        console.log(err);
        return false;
    }
    else
    {
        console.log("删除目录成功");
    }
})

9、fs.rmlink

作用:删除文件

语法:unlink(文件名,回调函数)

var fs=require("fs");

fs.unlink("FsTest\\dir\\zzz.html",function(err)
{
    if (err)
    {
        console.log(err);
        return false;
    }
    else
    {
        console.log("删除文件成功");
    }
})

10、fs.createReadStream

作用:从文件流中读取数据

语法:createReadStream(要读取的文件路径)
用on()方法来接收广播 语法:on(广播类型,回调函数)

var fs=require("fs");

// 以流的方式读取文件
var readStream=fs.createReadStream("FsTest\\t.txt");

// 每读到一块会进行广播 用on()方法来接收广播
var str=""; // 保存数据
var count=0; // 读取次数
readStream.on("data",function(chunk)
{
    str+=chunk;
    count++;
})

// 读取完成
readStream.on("end",function(chunk)
{
    // 打印读取的内容
    console.log(str);
    // 打印读取的次数
    console.log("共打印了:"+count+"次");
})

// 读取失败
readStream.on("error",function(err)
{
    // 打印失败信息
    console.log(err);
})

11、fs.createWriterStream

作用:写入文件

语法:createWriteStream(要写入的文件路径)

var fs=require("fs");

var writeStream=fs.createWriteStream("FsTest\\t.txt");

var data="我是要写入的数据\n";
// write(要写入的数据,字符编码格式)
for (var i=0;i<100;i++)
{
    writeStream.write(data,"utf8");
}

// 标记写入完成 当标记了写入完成之后 即无法继续写入了
writeStream.end();

// 当标记了写入完成 即会广播finish事件
writeStream.on("finish",function()
{
    console.log("写入完成");
})

// 写入失败
writeStream.on("error",function()
{
    console.log("写入失败");
})

管道流

管道提供了一个输出流到输入流的机制

通常用于从一个流中获取数据并将数据传递到另外一个流中
语法:原文件的读取流.pipe(目标文件的写入流)

var fs=require("fs");

// 创建一个可读流
var readerStream = fs.createReadStream('FsTest\\t.txt');
// 创建一个可写流
var writerStream = fs.createWriteStream('FsTest\\tt.txt');

// 管道读写操作
// 读取文件内容 并将内容写入到目标文件中 当目标文件不存在 会自动创建
readerStream.pipe(writerStream);
console.log("程序执行完毕");

发布了198 篇原创文章 · 获赞 9 · 访问量 72万+

猜你喜欢

转载自blog.csdn.net/Piconjo/article/details/105597723