[nodejs]filestreamローカルファイルを読み、書きます。

3023 ワード


原文:http://qianduanblog.com/post/nodejs-learning-4-filestream-read-write-local-file.html
1、filestream API
  • ファイルを読む:fs.readFile(非同期)
  • ファイルを書く:fs.writeFile(非同期)
  • 追加内容:fs.apped File(非同期)
  • コア例は:
    //    fs(filestream)   
    var fs = require("fs");
     
    // 1、   
    fs.readFile("text.txt", function (error, fileData) {
    	if (error) {
    		//     
    	}
    	//   fileData
    });
     
    // 2、   
    fs.writeFiel("text.txt", "new fileData", function (error) {
    	if (error) {
    		//     
    	}
    	//     
    });
     
    // 3、    
    fs.appendFile("text.txt", "append fileData", function (error) {
    	if (error) {
    		//     
    	}
    	//     
    });
     
    2、集積例
    異なるquerystringにアクセスすることによって、異なるAPIが動作される:
  • local host:2014?read=>ファイルを読む
  • local host:2014?write=>ファイルを書く
  • local host:2014?apped=>追加内容
  • 例は以下の通りです
    //    http   
    var http = require("http");
     
    //    filestream   
    var fs = require("fs");
     
    //    url   
    var url = require("url")
     
    //    querystring   
    var querystring = require("querystring")
     
    http.createServer(function (request, response) {
    	var objQuery = querystring.parse(url.parse(request.url).query);
     
    	//     
    	if (objQuery.type == "read") {
    		//       fs.read
    		fs.readFile("./tmp/file.txt", function (error, fileData) {
    			if (error) {
    				write(response, "<h1>      </h1>");
    			} else {
    				write(response, "<h1>     :</h1>" + fileData);
    			}
    		});
    	}
    	//     
    	else if (objQuery.type == "write") {
    		var writeString = "
    " + Date.now(); fs.writeFile("./tmp/file.txt", writeString, function (error) { if (error) { write(response, "<h1> </h1>"); } else { write(response, "<h1> :</h1>" + writeString); } }); } // else if (objQuery.type == "append") { var appendString = "
    " + Date.now(); fs.appendFile("./tmp/file.txt", appendString, function (error) { if (error) { write(response, "<h1> </h1>"); } else { write(response, "<h1> :</h1>" + appendString); } }); } else { write(response, "<h1> </h1>"); } }).listen(2014); function write(response, content) { response.writeHead(200, { "content-type": "text/html" }); response.write(content); response.end(); }
     
    3、参考資料
    http://nodejs.org/api/fs.html
    http://nodejs.gamesys.net/html/200.html