这并不难,但是我只是想获取文件的内容并将每一行存储到一个数组中。
“ file.txt”文件(格式为纯文本):
file1.dwg
file2.dwg
file3.pdf
file4.dwg
file5.pdf
我的JavaScript代码:
function readTextFile('file.txt') {
var rawFile = new XMLHttpRequest();
rawFile.open("GET", 'file.txt', false);
rawFile.onreadystatechange = function ()
{
if(rawFile.readyState === 4)
{
if(rawFile.status === 200 || rawFile.status == 0)
{
var allText = rawFile.responseText;
alert(allText);
}
}
}
rawFile.send(null);
}
控制台中显示的语法错误:
-野生动物园:SyntaxError: Unexpected string literal 'file.txt'. Expected a parameter pattern or a ')' in parameter list.
-chrome:Uncaught SyntaxError: Unexpected string
我正在具有以下文件结构的简单实时服务器上运行文件:
-file.txt
-page.html
-script.js
page.html只是调用脚本,并且可以在其中工作并打开控制台。
为什么会发生错误,如何解决?我尝试按照另一篇文章中的说明进行操作,但也失败了:How to read a local text file?
然后,我还尝试了节点解决方案,并使我的代码如下:
var fs = require('fs');
var array = fs.readFileSync('file.txt').toString().split("\n");
for(i in array) {
console.log(array[i]);
}
我对Node一无所知,但还是尝试了-错误是:
-chrome:未捕获的ReferenceError:require未定义
-野生动物园:ReferenceError:找不到变量:require
感谢您的帮助-我不知道如何解决这个看似简单的问题。
答案 0 :(得分:1)
function readTextFile(textFilePath) { //set a variable
var rawFile = new XMLHttpRequest();
rawFile.open("GET", textFilePath, false); //user variable here
let fileNameArray= [];//defined array here for now
rawFile.onreadystatechange = function (){
if(rawFile.readyState === 4)
{
if(rawFile.status === 200 || rawFile.status == 0)
{
var allText = rawFile.responseText;
console.log(allText); //check in broswer console
//alert(allText)
//or enale the alert function
fileNameArray = allText.split('\n'); //split by line break and add to array
console.log(fileNameArray)
}
}
}
rawFile.send(null);
}
readTextFile('./text.txt'); // call function and pass relative path of text file here