To read a local text file in JavaScript, you can “use the FileReader object’s readAsText() method.” The readAsText() method accepts a file object and a callback function as arguments. The callback function will be called when the file has been read, receiving the file’s contents as a string.
The FileReader API is used to read a file asynchronously in collaboration with JavaScript event handling.
However, not all browsers have HTML 5 support, so it is essential to test the browser compatibility before using the File API.
Here are four inbuilt methods in the FileReader API to read local files:
Method 1: readAsArrayBuffer(blob)
- It reads the content of the specified Blob or File.
- When the read operation is finished, the load event is triggered, and the result attribute contains an ArrayBuffer representing the file’s data.
Method 2: readAsBinaryString(blob)
- It reads the content of the specified Blob or File.
- When the read operation is complete, the load event is triggered, and the result attribute contains a binary string representing the file’s data.
Method 3: readAsDataURL(blob)
- It reads the content of the specified Blob or File.
- When the read operation is finished, the load event is triggered, and the result attribute contains a data URL representing the file’s data as a base64 encoded string.
Method 4: readAsText(blob, [encoding])
- It reads the content of the specified Blob or File.
- When the read operation is finished, the load event is triggered, and the result attribute contains the file’s data as a text string.
- The optional encoding parameter can be specified (e.g., ‘UTF-8’, ‘ISO-8859-1’, etc.). If not provided, the default is ‘UTF-8’.
Example of Reading a Local Text File in JavaScript
We will read the data.txt file, which has the following content:
J Robert Oppenheimer and Albert Einstien
hello world
Jawaan
Write the below code in the HTML file.
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<input type="file" id="file-input">
<script>
const fileInput = document.getElementById('file-input');
fileInput.addEventListener('change', (event) => {
const file = fileInput.files[0];
// Check if a file was selected
if (!file) {
return;
}
// Create a new FileReader object
const reader = new FileReader();
// This is called when the reading operation
// is successfully completed
reader.onload = function () {
// Display the file's contents
console.log(reader.result);
};
// This is called when there's an error reading the file
reader.onerror = function () {
console.error('Error reading the file:', reader.error);
};
// Read the file
reader.readAsText(file);
});
</script>
</body>
</html>
Output
You can see that code created a new FileReader object and used it to read the file that the user selected.
The file’s contents will be stored in the text variable, and the console.log() statement will print the contents to the console.
Conclusion
In practice, you would use these methods depending on the type of file you’re reading and what you intend to do with its content.
For instance, the readAsDataURL() function is often used for image files you want to display directly in an <img> element, while the readAsText() function is commonly used for text files.
Related posts
How to Write a File in JavaScript
How to Read a JSON File in TypeScript

Krunal Lathiya is a seasoned Computer Science expert with over eight years in the tech industry. He boasts deep knowledge in Data Science and Machine Learning. Versed in Python, JavaScript, PHP, R, and Golang. Skilled in frameworks like Angular and React and platforms such as Node.js. His expertise spans both front-end and back-end development. His proficiency in the Python language stands as a testament to his versatility and commitment to the craft.