Nodeコアモジュールのfsモジュール

8003 ワード

一、同期と非同期
ファイルI/OはNodeJSのコアモジュールの一つで、主な歳のファイルを読み書きします.fsのファイルへのロードは、同期と非同期の2つに分けられます.
  • 同期方式:現在の動作を実行し、結果を返した後、後続コード
  • を実行し続けることができる.
    var fs = require('fs');
    fs.unlinkSync('/targetUrl');
  • 非同期方式:コールバック関数を用いて、リターン結果を受信し、後続のコードを直ちに実行することができる.コールバック関数の最初のパラメータは異常パラメータであり、この方法が実行されれば、このパラメータは「null」局O哲「undefined」
  • である.
    var fs require('fs');
    fs.unlink('/targetUrl',function(err) {
        if(err) {
            throw err;
        }
    });
  • 非同期ローディングとの比較
  • var fs = require('fs');
    fs.readFile('test.txt','utf-8',function(err,data) {
        if(err) {
            throw err;
        } else {
           console.log(data); 
        }
    });
    console.log('    ');
    運転結果は、非同期でdata of test.txtを読み込みます.
    同期実行であれば、実行結果の順序は逆であるべきである.
    二、書類を読み、書きます
    1.eadFileファイルの読み込み
    fs.readFile(fileName[,options],callback);
    fileNameは読み込むファイル名です.optionsはオプションパラメータであり、ファイル符号化と操作方式を指定するためのオブジェクト形式である.例えば、rはリードファイルを表し、wは書き込みファイルを表し、aは追加ファイルを表す.
    fs.readFile('/test.txt','utf-8',function(err,data) {
        //  {encoding:'utf-8'}
        if(err) {
            console.log(err);
        }
        console.log(data);
    });
    2.writeFile書き込みファイルwriteFileとreadFileは同じです.文法ルールは
    fs.writeFile(fileName,data[,options],callback);
    このうち、dataはファイルに書き込むデータ内容であり、calbackは書き込み後のコールバック関数である.
              
    fs.writeFile('/rest.txt','data add to file',{'flag': 'a'},function(err) {
        if(err) {
            console.log(new Error('error'));
        }
    });
    書き込んだファイルを読み込みます.
    fs.readFile('/test.txt','utf-8',function(err,data) {
        if(err) {
            console.log(new Error('read err'));
        }
        console.log(data);
    });
    3.readとwrite読み書きファイルは、readFileとwriteFileを使ってファイルを読み書きする以外に、readとwriteを使ってファイルを読み書きすることができます.
  • ファイルを開くfs.open()
  • fs.open(path,flag[,mode],callback)
    パスはファイルです.flagsはファイルを開く方式です.はい、r:読み取り専用で文書を開くr+:読み書きでドキュメントを開くrs:同期モードで、読み取り専用でドキュメントを開く
    mode:ファイル権限(ファイルが既に存在している場合)、デフォルト値は「0666」、つまり読み書き機能があります.
  • ファイルを閉じるfs.close()
  • fs.close(fd[,callback])
    fdは開いたファイルの記述子です.
  • ファイルfs.read()
  • を読み出す.
    fs.read(fd,buffer,offset,length,position,callback)
    fd:ファイル記述子は、fs.open()メソッドのコールバック関数で返される第二のパラメータを受信しなければならない.buffer:読み取ったデータを格納するBufferオブジェクト.offset:bufferにデータを格納する開始位置を指定します.length:リードファイルのバイト数を指定します.position:ファイルで内容を読み取る開始位置を指定します.コールバック:コールバック関数
    fs.open('/test.txt','r'.function(err,fd) {
        if(err) {
            throw err;
        }
        var buffer = new Buffer(255);
        //    
        fs.read(fd,buffer,0,10,0,function(err,byteRead,buffer) {
            if(err) {
                throw err;
            }
            console.log(byteRead,buffer.slice(0,byteRead).toString());
            fs.close(fd);    //    
        });
    });
    calbackコールバック関数のパラメータ:err:異常byteRead:ファイルから内容を読み取る実際のバイト数です.バffer:読み取られたキャッシュオブジェクト.
  • 書き込みファイルfs.write()
  • fs.write(fd,buffer,offset,length,position,callback);
    基本パラメータはread()関数と同じです.ここでは、ファイルに書き込む内容です.
    fs.open('/test.txt','r'.function(err,fd) {
        if(err) {
            throw err;
        }
        var buffer = new Buffer('the information add into file');
        //    
        fs.write(fd,buffer,0,10,0,function(err,byteRead,buffer) {
            if(err) {
                throw err;
            }
            console.log(byteRead,buffer.slice(0,byteRead).toString());
            fs.close(fd);    //    
        });
    });
  • 書き込みfs.apped File()
  • fs.appendFile('test.txt','data to addto file',function(err) {
        if(err) {
            throw err;
        }
    });
    参考文章:汇智网-Node.js入門