node.js(六 --- 文件系统模块fs)

  node.js文件系统(fs模块)模块中的方法均有异步和同步版本,例如读取文件内容的函数有异步的fs.readFile和同步的fs.readFileSync();异步的方法函数最后一个参数为回调函数,

回调函数的第一个参数包含错误信息(error)

 

  打开文件

    fs.open(path,flags,mode,callback): 其中path是指文件的路径; flags是指文件打开的行为; mode是设置文件模式(权限),文件创建默认权限为0666(可读可写); callback是回调函数,带有两个参数;

    flags参数如下:

        r:以读取模式打开文件;如果文件不存在抛出异常;

        r+: 以读写模式打开文件,如果文件不存在抛出异常;

        rs: 以同步的方式读取文件;

        rs+: 以同步的方式读取和写入文件;

        w: 以写入模式打开文件,如果文件不存在则创建;

        wx: 类似w,但是如果文件路径存在,则文件写入失败;

        w+: 以读写模式打开文件,如果文件不存在则创建;

        wx+: 类似w,但是如果文件路径存在,则文件读写失败;

        a: 以追加模式打开文件,如果文件不存在则创建;

        ax: 类似a,但是如果文件路径存在,则文件追加失败;

        a+: 以读取追加模式打开文件,如果文件不存在则创建;

        ax+: 类似a,但是如果文件路径存在,则文件读取追加失败;

 

  获取文件信息

    fs.stat(path,callback): 其中,path表示文件路径; callback是指回调函数,有两个参数:(err,stats),其中stats是fs.stat对象;

    stats类中的方法包括:

      stats.isFile(): 如果是文件则返回true,否则返回false;

      stats.isDirectiory(): 如果是目录则返回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;

      

  写入文件

    fs.writeFile(file,data,options,callback): 直接打开文件默认是w模式,所以如果文件存在,该方法写入的内容会覆盖旧的文件内容;

    其中参数file是文件名或者文件描述; data是要写入文件的数据,可以是string或buffer对象; options是一个对象,包含encoding,mode,flag;默认的编码格式为utf-8,模式为0666,flag为w;  回调函数只包含错误信息参数;

 

  读取文件

     fs.read(fd,buffer,offset,length,position,callback): 该方法使用了文件描述来读取文件;

     参数fd的作用,通过fs.open()方法返回的文件描述符; buffer是数据写入的缓冲区; offset是缓冲区写入的写入偏移量; length是要从文件中读取的字节数; position表示文件读取的起始位置,如果position的值为null,则会从当前文件指针的位置读取。

  

  关闭文件

    fs.close(fd,callback): 该方法使用了文件描述符来读取文件; 其中,fd是通过fs.open()方法返回的文件描述符; callback回调函数没有参数

 

  文件截取

    fs.ftruncate(fd,len,callback): 该方法使用了文件描述符来读取文件。 其中:fd是通过fs.open()方法返回的文件描述符; len: 文件内容截取的长度; callback回调函数没有参数;

 

  删除文件

    fs.unlink(path,callback): 其中,path是文件的路径; callback回调函数没有参数;

 

  创建目录

    fs.mkdir(path,options,callback): 其中,path是指文件路径; options有两个值:recursive 和 mode,recursive表示是否以递归的方式创建目录,默认为false,mode是设置目录权限的,默认为0777; callback回到函数没有参数

  

  读取目录

    fs.readdir(path,callback): 其中,path是文件路径; callback回调函数,带有两个参数(err,file),err为错误信息,files为目录下的文件数组列表

 

  删除目录

    fs.rmdir(path,callback): 其中path是文件路径,callback是回调函数,没有参数

posted @ 2018-12-10 14:09  mumengchun  阅读(267)  评论(0编辑  收藏  举报