Snake's Home

nodejswritefile

最近在搞一个网站,用 javascript 写东西,发现用js来读写本地文件不是很方便, 用nodejs效果更佳。

网上找的例子。

filestream读写本地文件

1、filestream API

  • 读文件:fs.readFile(异步)
  • 写文件:fs.writeFile(异步)
  • 追加内容:fs.appendFile(异步)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
// 引用 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 => 追加内容

例子如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
// 引用 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. node.js里面怎么创建和解析JSON格式的文件

1
2
3
4
5
6
7
8
var fs = require('fs');

var writlog = {"rows":[ {"buildid":"data.number","product":"englishtown","env":"live","version":"ver"}
]}

fs.writeFileSync('./output.json',JSON.stringify(writlog));

var JsonObj=JSON.parse(fs.readFileSync('./output.json'));console.log(JsonObj);