一、js读取文件
在JS中,使用File对象读取文件。File对象只能读取上传的文件,不能访问本地文件系统中的文件。使用FileReader对象和File接口可以读取本地文件系统中的文件。
function readFile(file) { var reader = new FileReader(); reader.onload = function(event) { console.log(event.target.result); }; reader.readAsText(file); }
使用上面的函数,调用FileReader对象的readAsText()方法读取文件。readAsText()方法可以接受Blob对象和File对象。Blob对象就是二进制数据,可以通过一个URL从远程服务器获取。File对象是Blob的子类,带有文件名、修改时间、大小等信息,它是从页面中的file input元素选择的文件。
二、js读取文件内容
读取文件内容需要调用FileReader对象的readAsText()方法。readAsText()方法的第一个参数可以是Blob或File对象,第二个参数是编码方式,默认为UTF-8。
var file = new File(["Hello, world!"],"hello.txt"); var reader = new FileReader(); reader.onload = function(event) { console.log(event.target.result); }; reader.readAsText(file);
以上代码创建了一个File对象,包含了文本"Hello, world!",文件名为"hello.txt"。然后通过FileReader对象读取文件内容。输出结果将是"Hello, world!"。
三、js读取txt文本
在js中读取txt文本可以使用FileReader对象的readAsText()方法,它可以将文件的内容读取为字符串。以下是读取txt文件的示例代码:
document.getElementById('file').addEventListener('change', function(e) { var file = e.target.files[0]; var reader = new FileReader(); reader.onload = function(e) { console.log(reader.result); }; reader.readAsText(file); });
上述代码中,我们通过选择文件表单元素的change事件来获取用户选择的文件,然后使用FileReader对象来读取文件。最后,我们可以获得文件内容并输出到控制台。
四、js读取doc文件
JS不能直接读取.doc文件,但可以借助第三方库来实现。Apache POI是用于处理MS Office文档的Java库,我们可以使用Rhino或Graal.js来在JS中直接使用它。以下是Rhino的示例代码:
var FileReader = Java.type('java.io.FileReader'); var HWPFDocument = Java.type('org.apache.poi.hwpf.HWPFDocument'); var doc = new HWPFDocument(new FileReader('example.doc')); console.log(doc.text());
以上代码中,我们使用了Java的FileReader和Apache POI库来读取example.doc文件并提取文本内容。
五、js获取txt文件内容
使用XMLHttpRequest对象获取txt文件内容是一种常见的方法。以下是使用XMLHttpRequest对象获取txt文件内容的示例代码:
var xhr = new XMLHttpRequest(); xhr.onreadystatechange = function() { if (xhr.readyState === 4 && xhr.status === 200) { console.log(xhr.responseText); } } xhr.open('GET', 'example.txt', true); xhr.send();
以上代码使用XMLHttpRequest对象进行异步GET请求,请求example.txt文件,并在接收到数据时输出文件内容。
六、js读取json文件
js读取json文件与读取txt文件类似,也可以使用XMLHttpRequest对象,只需要将responseText解析为JSON对象即可。以下是读取json文件的示例代码:
var xhr = new XMLHttpRequest(); xhr.onreadystatechange = function() { if (xhr.readyState === 4 && xhr.status === 200) { var data = JSON.parse(xhr.responseText); console.log(data); } } xhr.open('GET', 'data.json', true); xhr.send();
以上代码使用XMLHttpRequest对象进行异步GET请求,请求data.json文件,然后将responseText解析为JSON对象。最后输出数据到控制台。
七、js读取本地txt文件内容
直接从JavaScript访问本地文件系统是不安全的,这是因为JavaScript是运行在浏览器中的沙箱中,没有访问本地文件系统的权限。但是,我们可以使用HTML5的File API来读取本地文件。以下是读取本地txt文件内容的示例代码:
function readLocalFile(file) { var reader = new FileReader(); reader.onload = function(event) { console.log(event.target.result); }; reader.readAsText(file); } var input = document.createElement('input'); input.type = 'file'; input.addEventListener('change', function(event) { var file = event.target.files[0]; readLocalFile(file); }); document.body.appendChild(input);
以上代码中,我们创建一个file input元素,当用户选择文件时,我们将文件传递给我们的readLocalFile()函数。这个函数使用FileReader对象读取文件,最后将文件内容输出到控制台。
八、js创建txt文件并写入
使用FileSystem API可以在浏览器中创建和操作文件。下面是创建txt文件并写入的示例代码:
window.requestFileSystem = window.requestFileSystem || window.webkitRequestFileSystem; navigator.webkitPersistentStorage.requestQuota(1024*1024*1024, function(grantedBytes) { window.requestFileSystem(window.PERSISTENT, grantedBytes, function(fs) { fs.root.getFile('example.txt', {create: true}, function(fileEntry) { fileEntry.createWriter(function(fileWriter) { fileWriter.onwriteend = function() { console.log('Write completed.'); }; var blob = new Blob(['Hello, world!'], {type: 'text/plain'}); fileWriter.write(blob); }, errorHandler); }, errorHandler); }, errorHandler); }, errorHandler); function errorHandler(e) { console.error(e); }
以上代码中,我们请求用户授权通过navigator.webkitPersistentStorage.requestQuota()方法。然后通过window.requestFileSystem()方法请求文件系统,使用fs.root.getFile()方法创建或打开example.txt文件。接着,我们调用createWriter()方法创建一个FileWriter对象,最后使用write()方法写入文件即可。