zoukankan      html  css  js  c++  java
  • 570 node内置模块fs


    fs的API介绍


    案例:获取一个文件的状态


    文件描述符


    文件的读写


    flag选项


    encoding选项


    文件夹操作


    文件夹的复制


    01_fs的三种使用方式.js

    const fs = require('fs');
    
    // 案例: 读取文件的信息
    const filepath = "./abc.txt";
    
    // 1.方式一: 同步操作
    const info = fs.statSync(filepath);
    console.log("后续需要执行的代码");
    console.log(info);
    
    // 2.方式二: 异步操作
    // fs.stat(filepath, (err, info) => {
    //   if (err) {
    //     console.log(err);
    //     return;
    //   }
    //   console.log(info);
    //   console.log(info.isFile());
    //   console.log(info.isDirectory());
    // });
    // console.log("后续需要执行的代码");
    
    // 3.方式三: Promise
    // fs.promises.stat(filepath).then(info => {
    //   console.log(info);
    // }).catch(err => {
    //   console.log(err);
    // });
    
    // console.log("后续需要执行的代码");
    
    

    02_文件描述符.js

    const fs = require('fs');
    
    fs.open("./abc.txt", (err, fd) => {
      if (err) {
        console.log(err);
        return;
      }
    
      // 通过描述符去获取文件的信息
      fs.fstat(fd, (err, info) => {
        console.log(info);
      })
    })
    

    03_文件的读写.js

    const fs = require('fs');
    
    // 1.文件写入
    // const content = "你好啊,哈哈哈";
    
    // fs.writeFile('./abc.txt', content, {flag: "a"}, err => {
    //   console.log(err);
    // });
    
    // 2.文件读取
    fs.readFile("./abc.txt", { encoding: 'utf-8' }, (err, data) => {
      console.log(data);
    });
    

    04_文件夹操作.js

    const fs = require('fs');
    
    // 1.文件写入
    // const content = "你好啊,哈哈哈";
    
    // fs.writeFile('./abc.txt', content, {flag: "a"}, err => {
    //   console.log(err);
    // });
    
    // 2.文件读取
    fs.readFile("./abc.txt", { encoding: 'utf-8' }, (err, data) => {
      console.log(data);
    });
    

    04_文件夹操作.js

    const fs = require('fs');
    const path = require('path');
    
    // 1.创建文件夹
    const dirname = './why';
    
    if (!fs.existsSync(dirname)) {
      fs.mkdir(dirname, err => {
        console.log(err);
      });
    }
    
    // 2.读取文件夹中的所有文件
    // fs.readdir(dirname, (err, files) => {
    //   console.log(files);
    // });
    
    // function getFiles(dirname) {
    //   fs.readdir(dirname, { withFileTypes: true }, (err, files) => {
    //     for (let file of files) {
    //       // fs.stat(file) 可以, 但是有点麻烦
    //       if (file.isDirectory()) {
    //         const filepath = path.resolve(dirname, file.name);
    //         getFiles(filepath);
    //       } else {
    //         console.log(file.name);
    //       }
    //     }
    //   });
    // }
    
    // getFiles(dirname);
    
    // 3.重命名
    fs.rename("./why", "./kobe", err => {
      console.log(err);
    })
    
    
    // 3.文件夹的重命名
    




  • 相关阅读:
    HDU 3951 (博弈) Coin Game
    HDU 3863 (博弈) No Gambling
    HDU 3544 (不平等博弈) Alice's Game
    POJ 3225 (线段树 区间更新) Help with Intervals
    POJ 2528 (线段树 离散化) Mayor's posters
    POJ 3468 (线段树 区间增减) A Simple Problem with Integers
    HDU 1698 (线段树 区间更新) Just a Hook
    POJ (线段树) Who Gets the Most Candies?
    POJ 2828 (线段树 单点更新) Buy Tickets
    HDU 2795 (线段树 单点更新) Billboard
  • 原文地址:https://www.cnblogs.com/jianjie/p/14232452.html
Copyright © 2011-2022 走看看