[nodejs]filestream读写本地文件

原文:http://qianduanblog.com/post/nodejs-learning-4-filestream-read-write-local-file.html

1、filestream API

  • 读文件:fs.readFile(异步)
  • 写文件:fs.writeFile(异步)
  • 追加内容:fs.appendFile(异步)

核心例子为:

// 引用 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:

  • localhost:2014?read => 读文件
  • localhost:2014?write => 写文件
  • localhost:2014?append => 追加内容

示例如下:

// 引用 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 = "\n" + 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 = "\n" + 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

 

 

猜你喜欢

转载自aigo.iteye.com/blog/2275003