我使用以下代码获取位于我的c文件夹中的特定文件, 我的问题是如何获取此文件中的特定内容,例如 我是文本文件,内容是
name:test 1 test2 test 3
user: foo bar
我需要在读取文件时将test1 test2 test3
作为"字符串" 当我找到" key"文本文件中的名称。
我怎么能这样做?
fs = require('fs')
fs.readFile('c//myfile.txt', 'utf8', function (err,data) {
if (err) {
return console.log(err);
}
});
答案 0 :(得分:0)
EDIT1: 现在做得更通用了。 keyVals现在是一个包含文件的键和对的对象数组
fs = require('fs')
var keyVals = [];
fs.readFile('c//myfile.txt', 'utf8', function (err,data) {
if (err) {
return console.log(err);
}
var lines = data.split('\n');
lines.forEach(function(line){
var pair = line.split(':');
keyVals.push({key:pair[0],val:pair[1]});
});
});
像这样访问它:
keyVals.forEach(function(element){
console.log(element.key, element.value);
})
我希望这会有所帮助
答案 1 :(得分:0)
当您的值包含':'时,其他答案会出现问题。 例如,当你的行是'name:bla:bli:blub'时,你只会得到'bla'。
所以这是我的建议,不会有这个问题:
您可以将此代码段放入readFile方法中:
var keyValueObject = {};
data.split("\n").forEach(function(element) {
var keyValueSeperatorPosition = element.indexOf(':');
var key = element.substr(0, keyValueSeperatorPosition);
var value = element.substring(keyValueSeperatorPosition + 1);
keyValueObject[key] = value;
});
然后,您可以使用以下方式访问您的值:
keyValueObject['name']