如何将文本文件中的值保存到数组中?

时间:2018-07-14 11:03:20

标签: javascript html

我要将具有.txt的4个值保存到数组中,如下所示:

array = [12.3,32.2,5.6,7.0];

我在互联网上看到了多个例子。他们中的大多数人都有一个按钮来选择要读取的文件,但是我的文件始终是相同的"/path/to_file/file.txt",所以我不想选择其他任何文件。

我发现一个或多或少起作用的代码,但是我不知道如何将文件的值保存到数组中。我的代码是这样的:

<!DOCTYPE html>
<html>
<head><meta charset="utf-8" />
<title>Read File (via AJAX)</title>
<script type="text/javascript">
var reader = new XMLHttpRequest() || new ActiveXObject('MSXML2.XMLHTTP');

function loadFile() {
    reader.open('get', 'Contact.txt', true); 
    reader.onreadystatechange = displayContents;
    reader.send(null);
}

function displayContents() {
    if(reader.readyState==4) {
        var el = document.getElementById('main');
        el.innerHTML = reader.responseText;
    }
}

</script>
</head>
<body>
<div id="container">
    <input type="button" value="test.txt"  onclick="loadFile()" />
    <div id="main">
    </div>
</div>
</body>
</html>

.txt文件的格式为:

12.3

32.2

5.6

7.0

如果有人可以提出任何将这些值保存到数组中的建议,我将不胜感激。因为我是HTML和Javascript的初学者,所以可以提供任何帮助。非常感谢。

2 个答案:

答案 0 :(得分:1)

您必须像这样重写null函数:

boolean isEqualIgnoreCase = false;
if (myClass != null){
   isEqualIgnoreCase = ("en").equalsIgnoreCase(myClass.getLocale());
}

仅用于演示其工作原理:

我们在displayContents()中具有与您的文本文件相同的值。因此,我仅将function displayContents() { if(reader.readyState == 4) { var array = reader.responseText.split(/\s+/); // we convert all strings into numbers: array = array.map(function(v){return +v}); console.log(array); // [12.3, 32.2, 5.6, 7] document.getElementById('main').innerHTML = array; } } 用于演示。

textarea
textarea

最后一个数字var array = document.getElementById('tarea').value.split(/\s+/); // we convert strings into numbers: array = array.map(function(v){return +v}); console.log(array); // [12.3, 32.2, 5.6, 7]用于计算机,例如数字<textarea id="tarea" rows="5" cols="25">12.3 32.2 5.6 7.0</textarea>。如果您希望像7.0这样使用它,则不必将其转换为数字。

答案 1 :(得分:1)

给定文件内容的答案

var text_from_file = "12.3\n\
\n\
32.2\n\
\n\
5.6\n\
\n\
7.0";

var out = text_from_file.split(/\s+/); // split by whitespace (newline included)
console.log(out);

原始答案

您只能读取文件,该文件可通过浏览器访问。

reader.open('get', <URI>, true);

对于<URI>,您不能放置/src/files/myfile.txt之类的文件路径,它必须是http://127.0.0.1/myFile.txt之类的浏览器可访问的文件

要以数组形式读取文件内容,可以使用JSON

var array = ["Hello","World"];
var array_as_text = JSON.stringify(array); // Returns a string which you store in your file
var array_from_text = JSON.parse(array_as_text);

如果文件中具有特定格式(您将为此提供一个示例)。您将需要分析文件内容。 因此,如果您需要进一步的帮助,请提供.txt

的文件内容