为了账号安全,请及时绑定邮箱和手机立即绑定

如何读取本地文本文件?

如何读取本地文本文件?

神不在的星期二 2019-05-31 13:44:50
如何读取本地文本文件?我试图通过创建一个函数来编写一个简单的文本文件读取器,该函数接受文件的路径,并将每一行文本转换为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上测试过这一点,它可以工作,但是在GoogleChrome中,它不能工作,而且它一直给我一个例外101。我怎样才能让它不仅在Firefox上工作,而且在其他浏览器(特别是Chrome)上也能工作呢?
查看完整描述

4 回答

?
holdtom

TA贡献1805条经验 获得超10个赞

您需要检查状态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");


查看完整回答
反对 回复 2019-05-31
?
慕的地6264312

TA贡献1817条经验 获得超6个赞

走这一段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>


查看完整回答
反对 回复 2019-05-31
?
忽然笑

TA贡献1806条经验 获得超5个赞

在引进后取API在javascript中,读取文件内容非常简单。

读取文本文件

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


查看完整回答
反对 回复 2019-05-31
?
心有法竹

TA贡献1866条经验 获得超5个赞

var input = document.getElementById("myFile");

var output = document.getElementById("output");



input.addEventListener("change", function () {

  if (this.files && this.files[0]) {

    var myFile = this.files[0];

    var reader = new FileReader();

    

    reader.addEventListener('load', function (e) {

      output.textContent = e.target.result;

    });

    

    reader.readAsBinaryString(myFile);

  }   

});

<input type="file" id="myFile">

<hr>

<textarea style="width:500px;height: 400px" id="output"></textarea>


查看完整回答
反对 回复 2019-05-31
  • 4 回答
  • 0 关注
  • 985 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信