【问题标题】:How to read the first line of .txt file?如何读取 .txt 文件的第一行?
【发布时间】:2017-02-12 19:11:02
【问题描述】:

谁能帮助如何阅读 .txt 文件的第一行?我有上传 example.txt 的输入类型文件,然后我想从该代码中获取第一行。我尝试过这样的事情:

<input type="file" id="fileUpload" name="fileUpload"/> MyTest.txt //file name

function confirmFileSubmit(){
    var fileName = $('#fileUpload').val();
    alert($('#fileUpload').split('\n')[0]);
} 

在我运行我的代码后,这只是在警告框中输出了文件名。我不确定如何读取文件的内容。如果有人可以提供帮助,请告诉我。

【问题讨论】:

    标签: javascript file-upload split


    【解决方案1】:

    为此,您需要 FileReader

    function confirmFileSubmit(){
        var input  = document.getElementById('fileUpload'); // get the input
        var file   = input.files[0];                  // assuming single file, no multiple
        var reader = new FileReader();
    
        reader.onload = function(e) {
            var text = reader.result;                 // the entire file
    
            var firstLine = text.split('\n').shift(); // first line 
    
            console.log(firstLine);                   // use the console for debugging
        }
    
        reader.readAsText(file, 'UTF-8');             // or whatever encoding you're using
                                                      // UTF-8 is default, so this argument 
    }                                                 // is not really needed
    

    【讨论】:

    • onChange 函数中传入的参数是 'e' 是什么?我试图 alert(e) 但我只得到了 [object Object] 并且我尝试了 e.val() 但我得到了一个错误。如果你能解释一下。谢谢。
    • eevent objectevent.target 是目标元素,event.target.files 保存所选文件的列表。你不能直接访问这些文件,你必须使用fileReader 来阅读它们,并且警告它们对你没有好处。
    • 有没有办法避免读取整个文件?我有很大的文件(可能 > 1 GB 的文本)。只是想读第一行。
    • @Vineet - 大多数服务器端语言只能读取文件的一部分,而客户端 JavaScript 则不能,它会在文件可访问之前读取整个文件。
    • 找到了方法:stackoverflow.com/a/14842739/2173960。它在File 上使用slice 方法来获取某些字节。这不是最好的方法,因为我们必须对上限进行硬编码,但我们可以给出一个适合大多数情况的大致数字。
    猜你喜欢
    • 2019-02-25
    • 2016-06-18
    • 2018-05-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-03-02
    • 1970-01-01
    相关资源
    最近更新 更多