三、fs文件操作模块

fs模块用于文件的读写等操作。

该模块有如下这些方法:

1、fs.stat() : 检测是文件还是目录

const fs = require(‘fs‘);

fs.stat(‘test.html‘,function(err,stats){
    if(err){
        console.log(err);
    }else{
        console.log(‘文件:‘ + stats.isFile());        //true
        console.log(‘目录:‘ + stats.isDirectory());   //false
    }
});

2、fs.mkdir():创建目录

接受如下几个参数:

  • path :将创建的目录路径
  • mode :目录权限(读写权限),默认0777
  • callback :回调,传递异常参数err
    fs.mkdir(‘css‘,function(err){
    if(err){
        console.log(err);
    }else{
        console.log("创建成功");
    }
    });

    3、fs.writeFile():写入文件

  • filename (String) 文件名称
  • data (String | Buffer) 将要写入的内容,可以使字符串 或 buffer数据。
  • options (Object) option数组对象,包含 :
    • · encoding (string) 可选值,默认 ‘utf8′,当data使buffer时,该值应该为 ignored。
    • · mode (Number) 文件读写权限,默认值 438
    • · flag (String) 默认值 ‘w‘
  • callback {Function} 回调,传递一个异常参数err。
    var str = "Hello Node.js";
    fs.writeFile(‘write.txt‘, str, ‘utf8‘, function (err) {
    if (err) {
        console.log(err);
    }else{
        console.log("创建成功");
    }
    });

    如果该文件不存在则创建该名称文件并写入数据。如果多次写入的话,那么后面写入的内容会覆盖前面写入的内容。

4、fs.appendFile():追加文件

用法与writeFile相同,只是对此写入的话不会覆盖之前的数据,而是在其后追加数据。

5、fs.readFile() :读取文件

回调函数中的data即包含了读取的数据。

fs.readFile(‘write.txt‘,function(err,data){
    if(err){
        console.log(err);
    }else{
        console.log(data.toString());
    }
});

6、fs.readdir():读取目录,获取目录下面的文件和文件夹。

fs.readdir(‘css‘,function(err,data){
    if (err){
        console.log(err);
    }else{
        console.log(data);
    }
});

不过这样只能获取第一级目录

7、fs.rename():重命名文件

fs.rename(‘html/index.html‘,‘html/news.html‘,function(err){
  if (err) {
    console.log(err);
  } else {
    console.log(‘修改名字成功‘);
  }
})

这样就可以把index.html文件名修改为news.html

这个方法还可以实现文件剪切功能:

fs.rename(‘html/css/basic.css‘,‘html/style.css‘,function(err){

    if(err){
     console.log(err);
     return false;
   }
   console.log(‘剪切成功‘);
})

这样就可以把html/css/basic.css剪切到html/style.css

8、fs.redir():删除目录

fs.rmdir(‘text‘,function(err){
     if(err){
      console.log(err);

      return false;
    }
   console.log(‘删除目录成功‘);
})

这里的删除只能删除空目录。

9、fs.unlink():删除文件

fs.unlink(‘index.txt‘,function(err){

       if(err){
          console.log(err);
          return false;
     }
    console.log(‘删除文件成功‘);
})

10、fs.createReadStream():以流的方式读取数据

这种方式读取文件是分块读取的

// 创建一个可以读取的流,读取文件 input.txt 中
var readStream=fs.createReadStream(‘input.txt‘);

var str=‘‘;/*保存数据*/
var count=0;  /*次数*/

//触发data事件,开始取读数据
readStream.on(‘data‘,function(chunk){
    str+=chunk;
    count++;
})

//触发end事件,读取完成
readStream.on(‘end‘,function(chunk){
    console.log(count);
    console.log(str);
})

//读取失败
readStream.on(‘error‘,function(err){
    console.log(err);
})

这种读取方式很高效,适合取读大批量数据。如果所读数据量不是很大的话使用上面的readFile方法即可。

11、fs.createWriteStream():以流的方式写入文件

var data = ‘我是从数据库获取的数据,我要保存到文件中去\n‘;

// 创建一个可以写入的流,写入到文件 output.txt 中
var writerStream = fs.createWriteStream(‘output.txt‘);

//开始写入数据
writerStream.write(data,‘utf8‘);

//标记写入完成
writerStream.end();

//触发finish事件,完成写入
writerStream.on(‘finish‘,function(){
    console.log(‘写入完成‘);
})

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

同样,如果要写入的文件不存在就创建该文件再写入。

12、管道流读取

管道提供了一个输出流到输入流的机制。通常我们用于从一个流中获取数据并将数据传递到另外的一个流中。

// 创建一个可读流,这是管道的输出端
var readerStream = fs.createReadStream(‘input.txt‘);

// 创建一个可写流,这是管道的输入端
var writerStream = fs.createWriteStream(‘output.txt‘);

// 管道读写操作
// 读取 input.txt 文件内容,并将内容写入到 output.txt 文件中
readerStream.pipe(writerStream);

console.log("程序执行完毕");
时间: 2024-08-07 16:53:55

三、fs文件操作模块的相关文章

nodejs零基础详细教程2:模块化、fs文件操作模块、http创建服务模块

第二章  建议学习时间4小时  课程共10章 学习方式:详细阅读,并手动实现相关代码 学习目标:此教程将教会大家 安装Node.搭建服务器.express.mysql.mongodb.编写后台业务逻辑.编写接口,最后完成一个完整的项目后台,预计共10天课程. 模块儿化  为什么需要模块儿化? 我们以前的常规js代码中,我们为了重用一些js代码,是将js方法封装起来,放到js文件中,然后在HTML页面中引入js,就可以在页面中使用这些方法了. 当这种直接引入和调用的方式存在一些不友好的地方,比如,

nodejs文件操作模块FS(File System)常用函数简明总结

件系统操作相关的函数挺多的.首先可以分为两大类. 一类是异步+回调的. 一类是同步的. 在这里只对异步的进行整理,同步的只需要在函数名称后面加上Sync即可 1. 首先是一类最常规的读写函数,函数名称和形式,应该是起源于C语言的. fs.open(文件路径,读写标识,[文件mode值,666],回调函数(err,文件句柄fd)); fs.read(文件句柄fd,被写入的buffer,offset,length,position,回调函数(err, bytesRead, buffer)); fs.

Python 第三天 文件操作

文件操作 操作文件时,一般需要经历如下步骤: 打开文件 操作文件 一.打开 文件句柄 = file('文件路径', '模式') 注:python中打开文件有两种方式,即:open(...) 和  file(...) ,本质上前者在内部会调用后者来进行文件操作,推荐使用 open. open会自己在Python中找. 打开文件时,需要指定文件路径和以何等方式打开文件,打开后,即可获取该文件句柄,日后通过此文件句柄对该文件操作. 打开文件的模式有: r,只读模式(默认). w,只写模式.[不可读,也

python入门三:文件操作

一.文件操作 1.文件对象:和c一样,要想对一个文件进行操作,需要获取该文件的对象 1 f = open("xxx") # 打开文件并获取文件对象 2 f.xxx # 对文件进行某些操作 3 f.close() # 关闭文件 2.访问模式: open函数除了接受一个文件名参数外,还可以设定文件的访问模式(open其他的参数不太能理解) 无   以只读方式打开,文件必须存在 r     以只读方式打开,文件必须存在 w    以只写方式打开, 先删除原有内容再写入新内容,文件不存在创建新

Python学习记录——Ubuntu(三)文件操作

一.mkdir用于创建目录: mkdir 目录名  #创建目录 mkdir -p 目录名1/目录名2/目录名3  #创建多层目录 二.rm用于删除文件(慎用,易引发程序崩溃): 1.参数 (1)rm 文件名   #只能删除文件,但是不能删除目录 (2)rm -i 文件名  #会出现提示 (3)rm -f 文件名  #强制删除 (4)rm -rf 目录名  #强制删除目录 三.mv用于移动或重命名文件/目录: 1.示例 (1)mv 文件/目录名 新文件/目录名  #重命名文件/目录 (2)mv  

python3.0 第三天 文件操作

文件操作 对文件操作流程 打开文件,得到文件句柄并赋值给一个变量 通过句柄对文件进行操作 关闭文件 现有文件如下 Somehow, it seems the love I knew was always the most destructive kind 不知为何,我经历的爱情总是最具毁灭性的的那种 Yesterday when I was young 昨日当我年少轻狂 The taste of life was sweet 生命的滋味是甜的 As rain upon my tongue 就如舌

python学习笔记——(三)文件操作

·集合操作及其相应的操作符表示集合中没有插入,只有添加,因为毕竟无序 #!/usr/bin/env python # -*- coding:utf-8 -*- # Author:Vergil Zhang list_1 = [1, 4, 5, 7, 3, 6, 7, 9] list_1 = set(list_1) print(list_1, type(list_1)) list_2 = set([2, 6, 0, 66, 22, 8]) print(list_1,list_2) #交集 print

Python基础(三)文件操作和处理json

文件操作步骤:1.有一个文件,2.打开文件,3.读写修改文件,4.关闭文件 一.有一个文件:新建或导入文件 二.打开文件:如果是新建的文件默认和py文件在同一个目录:如果是打开文件,要将文件放在py同目录或者是打开文件要写绝对路径 打开文件有两种方式:1. f = open('user.txt') ; 2. with open ('user.txt') as f, open('user2.txt') as f: 两者的区别是第1种方法必须用f.close()关闭,定义一次只能打开一个文件 :第二

nodejs模块fs——文件操作api

// fs模块常用api // 读取文件 .写入文件 .追加文件. 拷贝文件 .删除文件 // 读取文件 // fs.readFile(path[, options], callback) // fs.readFileSync(path[, options]) const fs = require('fs') // 异步读取 fs.readFile('./test.json', (error, data) => { if (error) return var data = data.toStri