I am trying to read a text file filepath = "data/words.txt" and randomly select a line to print in the console.
I tried to do:
function generateRandomWord() {
var file = new File(filepath);
let fileReader = new FileReader();
const data = fileReader.readAsText(file);
var lines = data.split("n");
var line = lines[Math.floor(Math.random() * lines.length)]; //select a random line from txt file (a random word)
console.log(line);
}
However, I can’t seem to get the file to read.
Advertisement
Answer
if you want read a text file from the path you need run your code such as node.js environment; but if you using HTML and browser to pick file from input, continue .
add some html element to pick file and generate text from picked file :
<input type="file" onchange="FileReader(this.files[0])" /> <button onclick="RandomText(TEXT)">Generate</button>
and now add this js script :
var TEXT = "";
async function FileReader(file) {
TEXT = await file.text();
}
function RandomText(text) {
const textArray = text.split("n");
const randomKey = Math.floor(Math.random() * textArray.length);
console.log(textArray[randomKey]);
}