2016-01-18 6 views
12

Ho un file di testo nella stessa cartella del mio file JavaScript. Entrambi i file sono memorizzati sul mio computer locale. Il file .txt è una parola di ogni riga come:Lettura del file di testo locale in un array JavaScript

red 
green 
blue 
black 

Voglio leggere in ogni linea e memorizzarli in un array JavaScript nel modo più efficiente possibile. Come fai a fare questo?

+7

Questa "Javascript - Leggi i file di testo" domanda/risposta appare come un buon punto di partenza: http://stackoverflow.com/questions/14446447/javascript-read-local -text-file – Marc

+2

Qual è il tuo JavaScript in esecuzione? È incorporato in una pagina Web? "Local" significa "sullo stesso host HTTP"? O lo stai usando con Windows Scripting Host? O Node.js? E volendo accedere al tuo file system piuttosto che qualcosa via HTTP? – Quentin

+0

È per lato server (Nodo) o lato client (browser Web)? Non puoi farlo per la codifica lato client. –

risposta

25
modalità

sincronizzazione:

var fs = require("fs"); 
var text = fs.readFileSync("./mytext.txt"); 
var textByLine = text.split("\n") 

modalità asincrona:

var fs = require("fs"); 
fs.readFile("./mytext.txt", function(text){ 
    var textByLine = text.split("\n") 
}); 

UPDATE

Al almeno Nodo 6, readFileSync restituisce una Buffer, quindi deve prima essere convertiti una stringa in modo che split funzioni:

var text = fs.readFileSync("./mytext.txt").toString('utf-8'); 

O

var text = fs.readFileSync("./mytext.txt", "utf-8"); 
+0

come metterli in un array? – abidinberkay

+0

La funzione Split restituisce un array e textByLine è già un array – siavolt

+0

Questo non sembra funzionare sul Nodo 6, che restituisce un 'Buffer' –