当前位置: 首页 > 知识库问答 >
问题:

如何读取本地文本文件?

颛孙飞
2023-03-14

我试图通过创建一个函数来编写一个简单的文本文件阅读器,该函数接受文件的路径并将每行文本转换为char数组,但它不起作用。

function readTextFile() {
  var rawFile = new XMLHttpRequest();
  rawFile.open("GET", "testing.txt", true);
  rawFile.onreadystatechange = function() {
    if (rawFile.readyState === 4) {
      var allText = rawFile.responseText;
      document.getElementById("textSection").innerHTML = allText;
    }
  }
  rawFile.send();
}

这里出了什么问题?

从以前的修订版更改了一点代码后,这似乎仍然不起作用,现在它给我一个XMLHttpRequest异常101。

我在Firefox上测试过这个功能,它可以工作,但在Google Chrome上它就是不工作,它一直给我一个异常101。我如何让它不仅适用于Firefox,还适用于其他浏览器(尤其是Chrome)?

共有3个答案

谭新知
2023-03-14

访问圣经!然后进入“readAsText”部分,尝试下面的例子。您将能够了解文件阅读器的readAsText功能是如何工作的。

    <html>
    <head>
    <script>
      var openFile = function(event) {
        var input = event.target;

        var reader = new FileReader();
        reader.onload = function(){
          var text = reader.result;
          var node = document.getElementById('output');
          node.innerText = text;
          console.log(reader.result.substring(0, 200));
        };
        reader.readAsText(input.files[0]);
      };
    </script>
    </head>
    <body>
    <input type='file' accept='text/plain' onchange='openFile(event)'><br>
    <div id='output'>
    ...
    </div>
    </body>
    </html>

廖弘伟
2023-03-14

在javascript中引入fetch api之后,读取文件内容再简单不过了。

读取文本文件

fetch('file.txt')
  .then(response => response.text())
  .then(text => console.log(text))
  // outputs the content of the text file

读取json文件

fetch('file.json')
  .then(response => response.json())
  .then(jsonResponse => console.log(jsonResponse))     
   // outputs a javascript object from the parsed json

此技术在Firefox中运行良好,但似乎Chrome的fetch实现在编写此更新之日不支持file:///URL方案(在Chrome68中测试)。

出于与Chrome相同的(安全)原因,这种技术不适用于Firefox版本68(2019年7月9日)以上的版本:CORS request not HTTP。看见https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS/Errors/CORSRequestNotHttp.

宇文智敏
2023-03-14

您需要检查状态0(当使用XMLHttpRequest在本地加载文件时,您不会返回状态,因为它不是来自Webserver

function readTextFile(file)
{
    var rawFile = new XMLHttpRequest();
    rawFile.open("GET", file, false);
    rawFile.onreadystatechange = function ()
    {
        if(rawFile.readyState === 4)
        {
            if(rawFile.status === 200 || rawFile.status == 0)
            {
                var allText = rawFile.responseText;
                alert(allText);
            }
        }
    }
    rawFile.send(null);
}

并在文件名中指定file://

readTextFile("file:///C:/your/path/to/file.txt");
 类似资料:
  • 问题内容: 我正在尝试通过创建一个接受文件路径并将文本的每一行转换为char数组的函数来编写一个简单的文本文件阅读器,但是它不起作用。 这是怎么了? 从先前的版本中稍稍更改了代码后,这似乎仍然不起作用,现在给了我一个例外101。 我已经在Firefox上对其进行了测试,并且可以工作,但是在Google Chrome中它却无法工作,并且一直给我一个异常101。如何使它不仅可以在Firefox上而且还

  • 问题内容: 如何使用JQuery.getJSON()读取当前目录中的文件? 我正在尝试一些简单的操作(将data.json文件与html文件放在同一目录中): 我得到错误: XMLHttpRequest无法加载file:/// C:/Projects/test/data.json。Access-Control-Allow- Origin不允许使用Origin null。 我尝试了各种路径组合,但似

  • 问题内容: 我想读取一个包含空格分隔值的文本文件。值是整数。如何读取并将其放入数组列表? 这是文本文件内容的示例: 我想将它包含在arraylist中。如何用Java做到这一点? 问题答案: 你可以用来将文本文件的所有行都放入。 教程:基本文件读取,写入和创建文本文件 你可以用来基于正则表达式拆分部分。 教程:数字和字符串>字符串>操纵字符串中的字符 你可以使用将转换为。 教程:数字和字符串>字符

  • 我想从我的本地html文件中读取一个本地文本文件,所以我尝试遵循这个线程中的解决方案JavaScript-Read local text file,但建议的解决方案对我也不起作用: 当我调用函数时,在firebug中不会出现错误,但也不会显示警报。我使用Windows和Firefox51.0.1(64位)。我不想将函数与按钮

  • 问题内容: 我试图将文本文件加载到我的JavaScript文件中,然后从该文件中读取行以获取信息,我尝试使用FileReader,但它似乎无法正常工作。有人可以帮忙吗? 问题答案: 是的,可以使用FileReader,我已经做了一个示例,这是代码: 最后,我只是读了其他一些吸引我的答案,但正如他们所建议的那样,您可能正在寻找使您能够从JavaScript文件所在的服务器(或设备)加载文本文件的代码

  • 我想从文本文件中读取文本。在下面的代码中,会发生异常(这意味着它会转到catch块)。我将文本文件放在应用程序文件夹中。我应该把这个文本文件(mani.txt)放在哪里才能正确阅读?