这是我的文本文件 -
15,13,12
10
10
这是 .js 文件
var fs = require("fs");
var data = fs.readFileSync("someNumbers.txt", "utf8");
for(var i=0; i<data.length; i++){
console.log(i + ": " + data[i] + ": " + typeof data[i]);
}
最后是输出:
0: 1: string
1: 5: string
2: ,: string
3: 1: string
4: 3: string
5: ,: string
6: 1: string
7: 2: string
8: ,: string
: string
10:
: string
11: 1: string
12: 0: string
: string
14:
: string
15: 1: string
16: 0: string
我不明白我到达 9 后输出发生了什么; 我将不胜感激。 杰拉德
最佳答案
当您尝试在字符串中包含原始文件中的回车符和/或换行符,然后将该字符串发送到 console.log()
时,您可能会遇到问题。更改您的代码以使用十六进制值而不是实际值,您的问题应该得到解决:
var fs = require("fs");
var data = fs.readFileSync("someNumbers.txt", "utf8");
for(var i=0; i<data.length; i++){
console.log(i + ": " + data.charCodeAt(i).toString(16). + ": " + typeof data[i]);
}
或者,跳过任何不可打印的字符:
var fs = require("fs");
var data = fs.readFileSync("someNumbers.txt", "utf8");
for (var i=0; i<data.length; i++){
var ch = data.charCodeAt(i);
if (ch > 32 && ch <= 127) {
console.log(i + ": " + ch + ": " + typeof ch);
}
}
请注意,当您读取文件并告诉它将其解释为 utf8 时,您已经做到了 typeof
该数据中的每个项目都将被视为一个字符串,无论它是真的是或不是。您已经告诉 Javascript 将其全部设为字符串。
关于javascript - 使用 node.js 从文件中读取,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34708857/