zoukankan      html  css  js  c++  java
  • node-学习之路03 fs模块

    1.fs模块是node 的核心模块之一

    1.1异步读写

    fs.writeFile(file, data[, options], callback)
    writeFile 直接打开文件默认是 w 模式,所以如果文件存在,该方法写入的内容会覆盖旧的文件内容
    • file - 文件名或文件描述符。

    • data - 要写入文件的数据,可以是 String(字符串) 或 Buffer(缓冲) 对象。

    • options - 该参数是一个对象,包含 {encoding, mode, flag}。默认编码为 utf8, 模式为 0666 , flag 为 'w'

    • callback - 回调函数,回调函数只包含错误信息参数(err),在写入失败时返回。

    var fs = require("fs");
    
    // 异步读取
    fs.writeFile('./1.text','你好',{flag:'w+'},function (err) {
    if (err){
    return console.err(err);
    }
    console.log("数据写入成功!");
    console.log("--------我是分割线-------------")
    console.log("读取写入的数据!");
    fs.readFile('./1.text',function (err,data) {
    console.log("异步读取文件数据: " + data.toString());
    })
    })
     

    1.2异步打开文件

    fs.open(path, flags[, mode], callback)
    • path - 文件的路径。

    • flags - 文件打开的行为。具体值详见下文。

    • mode - 设置文件模式(权限),文件创建默认权限为 0666(可读,可写)。

    • callback - 回调函数,带有两个参数如:callback(err, fd)。 

       

       demo   

    //异步
    fs.open('.index.js',"w",function (err,fd) { if(err){ console.log('失败') }else{ console.log('成功'+fd) //成功3 } })
    //同步
    var fd=fs.openSync('.index.js',"w");
    console.log(fd)       //3
     

      1.3获取文件信息

      fs.stat(path, callback) 

      •   path - 文件路径。

      •   callback - 回调函数,带有两个参数如:(err, stats), stats 是 fs.Stats 对象。

      • fs.stat(path)执行后,会将stats类的实例返回给其回调函数。可以通过stats类中的提供方法判断文件的相关属性。例如判断是否为文件:
    fs.stat("./index.js",function (err,stat) {
      if (err){
        console.log('错误')
      }else{
        console.log(stat.isFile())   //true
        console.log(stat.isDirectory()) //false
        console.log(stat.isBlockDevice())
        console.log(stat.isCharacterDevice())
        console.log(stat.isSymbolicLink())
        console.log(stat.isFIFO())
        console.log(stat.isSocket())
      }
    var fs = require("fs");
    
    console.log("准备打开文件!");
    fs.stat('input.txt', function (err, stats) {
       if (err) {
           return console.error(err);
       }
       console.log(stats);
       console.log("读取文件信息成功!");
       
       // 检测文件类型
       console.log("是否为文件(isFile) ? " + stats.isFile());
       console.log("是否为目录(isDirectory) ? " + stats.isDirectory());    
    });

     其余方法

    var fs = require("fs");
    // fs.unlink("1.jpg");
    //1.读取当前目录
    fs.readdir(".",function (err,file) {
      if (err){
        return console.error(err)
      }
      console.log(file)
    });
    //2.删除文件
    fs.unlink("hello.jpg",function (err) {
      if (err){
        return console.error(err)
      }
    });
    //3.截断文件 len 字节 ,一个英文是一个字节byte 一个汉字是3个字节
    fs.truncate('./1.text',6);
    //4.mkdir创建目录
    fs.mkdir("hello")
    //5.删除文件夹
    fs.rmdir("hello")
    //6.重命名
    fs.rename("hello3.text","123.text",function (err) {
      if (err){
        return console.error(err)
      }
    });
    //监听
    fs.watchFile("123.text",function (cur,prev) {
      console.log('发生变化')
    })
     
  • 相关阅读:
    Leetcode Substring with Concatenation of All Words
    Leetcode Divide Two Integers
    Leetcode Edit Distance
    Leetcode Longest Palindromic Substring
    Leetcode Longest Substring Without Repeating Characters
    Leetcode 4Sum
    Leetcode 3Sum Closest
    Leetcode 3Sum
    Leetcode Candy
    Leetcode jump Game II
  • 原文地址:https://www.cnblogs.com/liangfc/p/9752181.html
Copyright © 2011-2022 走看看