【nodeJs】fsファイルモジュール

13045 ワード

Node.jsファイルシステム(fsモジュール)の方法は非同期バージョンと同期バージョンがあります.同期よりも非同期方法の方が性能が高く、速度が速く、ブロックがないことをお勧めします.
この文章はよくあるファイルの操作だけを列挙しました.公式サイトをご覧ください.https://nodejs.org/api/fs.html#fs_fs_rename_oldpath_newpath_calback 1.ファイルシステムモジュールの導入(fs)
var fs = require("fs")
2.ファイルの読み込み

//     
fs.readFile('input.txt', function (err, data) {
   if (err) {
       return console.error(err);
   }
   console.log("    : " + data.toString());
});

//     
var data = fs.readFileSync('input.txt');
console.log("    : " + data.toString());

console.log("      。");

      :
    : XXX
      。
    :XXX
3.ファイルを開く(非同期)
fs.open(path, flags[, mode], callback)


path -      。

flags -        。       。

mode -       (  ),          0666(  ,  )。

callback -     ,       :callback(err, fd)。

flags        :

r            。           。
r+           。           。
rs            。
rs+              。
w            ,          。
wx     'w',          ,       。
w+           ,          。
wx+    'w+',           ,       。
a            ,          。
ax     'a',           ,       。
a+             ,          。
ax+    'a+',           ,         。
eg:

var fs = require("fs");

//       
console.log("      !");
fs.open('input.txt', 'r+', function(err, fd) {
   if (err) {
       return console.error(err);
   }
  console.log("      !");     
});
4.ファイル情報の取得(非同期)
fs.stat(path, callback)
fs.stat(path)   ,  stats            。    stats                。         :

eg:
var fs = require('fs');

fs.stat('/Users/liuht/code/itbilu/demo/fs.js', function (err, stats) {
    console.log(stats.isFile());         //true
})

stats      :

stats.isFile()          truefalse。
stats.isDirectory()         truefalse。
stats.isBlockDevice()            truefalse。
stats.isCharacterDevice()             truefalse。
stats.isSymbolicLink()           truefalse。
stats.isFIFO()     FIFO,  truefalse。FIFO UNIX             。
stats.isSocket()        Socket    truefalse
5.ファイルに書き込む(非同期)
fs.writeFile(file, data[, options], callback)


file -          。

data -         ,    String(   )   Buffer( )   。

options -         ,   {encoding, mode, flag}。      utf8,     0666 , flag   'w'

callback -     ,             (err),        。


eg:
var fs = require("fs");

fs.writeFile('input.txt', '     fs.writeFile        ',  function(err) {
   if (err) {
       return console.error(err);
   }
   console.log("      !");

   console.log("       !");
   fs.readFile('input.txt', function (err, data) {
      if (err) {
         return console.error(err);
      }
      console.log("        : " + data.toString());
   });
});

    :
      !
       !
        :      fs.writeFile 
6.ファイルの読み込み(非同期)
fs.read(fd, buffer, offset, length, position, callback)


fd -    fs.open()           。

buffer -         。

offset -            。

length -            。

position -          ,   position     null,              。

callback -     ,     err, bytesRead, buffer,err      , bytesRead         ,buffer       。

eg:
var fs = require("fs");
var buf = new Buffer(1024);

console.log("          !");
fs.open('input.txt', 'r+', function(err, fd) {
   if (err) {
       return console.error(err);
   }
   console.log("      !");
   console.log("      :");
   fs.read(fd, buf, 0, buf.length, 0, function(err, bytes){
      if (err){
         console.log(err);
      }
      console.log(bytes + "       ");

      //         
      if(bytes > 0){
         console.log(buf.slice(0, bytes).toString());
      }
   });
});
7.ファイルを閉じる
fs.close(fd, callback)

eg:
var fs = require("fs");
var buf = new Buffer(1024);

console.log("      !");
fs.open('input.txt', 'r+', function(err, fd) {
   if (err) {
       return console.error(err);
   }
   console.log("      !");
   console.log("      !");
   fs.read(fd, buf, 0, buf.length, 0, function(err, bytes){
      if (err){
         console.log(err);
      }

      //         
      if(bytes > 0){
         console.log(buf.slice(0, bytes).toString());
      }

      //     
      fs.close(fd, function(err){
         if (err){
            console.log(err);
         } 
         console.log("      ");
      });
   });
});
8.ディレクトリの作成
fs.mkdir(path[, mode], callback)
path -     。

mode -       ,    0777。

callback -     ,    err  

eg:
var fs = require("fs");

console.log("     /tmp/test/");
fs.mkdir("/tmp/test/",function(err){
   if (err) {
       return console.error(err);
   }
   console.log("      。");
});
9.ディレクトリの読み込み
fs.readdir(path, callback)


path -     。

callback -     ,          err, files,err      ,files             。

eg:
var fs = require("fs");

console.log("   /tmp   ");
fs.readdir("/tmp/",function(err, files){
   if (err) {
       return console.error(err);
   }
   files.forEach( function (file){
       console.log( file );
   });
});