JS如何通过FileReader获取.txt文件内容
程序员文章站
2022-03-14 22:21:04
目录js通过filereader获取.txt文件内容读取.txt文件方法js: filereader()读取文件下面开始实际例子读取txt文件读取图片文件js通过filereader获取.txt文件内...
js通过filereader获取.txt文件内容
最近处理一个需求是,通过js解析.txt文件来做一些处理,在这里做一些总结。
读取.txt文件方法
var reader = new filereader(); var fileuploader = document.getelementbyid(“fileuploader”);//获取input框id来获取文件信息 reader.readastext(fileuploader.files[0],“utf-8”);//设置编码 reader.onload = function(){undefined data.trim().split('\n').foreach(function(v, i){undefined window[‘str' + (i+1)] = v } }
-
v
是.txt中每行文本的内容 -
i
是.txt中第几行
获取.txt文件总行数没有直接的方法可以调用,所以我这里用循环来处理:
var count =0; data.trim().split('\n').foreach(function(v, i){undefined count ++; })
js: filereader()读取文件
filereader 对象允许web应用程序异步读取存储在用户计算机上的文件(或原始数据缓冲区)的内容,使用 file 或 blob 对象指定要读取的文件或数据。
属性:
-
filereader.error
表示在读取文件时发生的错误 filereader.readystate
-
filerreader.result
读取到的结果
下面开始实际例子
index.html如下
<!doctype html> <html lang="zh"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="x-ua-compatible" content="ie=edge"> <title>filereader</title> </head> <body> <input id="input" type="file"> </body> </html>
demo.txt如下
this is a demo test
hello world
读取txt文件
<script> const input = document.queryselector('input[type=file]') input.addeventlistener('change', ()=>{ const reader = new filereader() reader.readastext(input.files[0],'utf8') // input.files[0]为第一个文件 reader.onload = ()=>{ document.body.innerhtml += reader.result // reader.result为获取结果 } }, false) </script>
读取图片文件
<script> const input = document.queryselector('input[type=file]') input.addeventlistener('change', ()=>{ console.log( input.files ) const reader = new filereader() reader.readasdataurl(input.files[0]) // input.files[0]为第一个文件 reader.onload = ()=>{ const img = new image() img.src = reader.result document.body.appendchild(img) // reader.result为获取结果 } }, false) </script>
实例
import java.io.*; public class fileread { public static void main(string args[]) throws ioexception { file file = new file("hello1.txt"); // 创建文件 file.createnewfile(); // creates a filewriter object filewriter writer = new filewriter(file); // 向文件写入内容 writer.write("this\n is\n an\n example\n"); writer.flush(); writer.close(); // 创建 filereader 对象 filereader fr = new filereader(file); char[] a = new char[50]; fr.read(a); // 读取数组中的内容 for (char c : a) system.out.print(c); // 一个一个打印字符 fr.close(); } }
方法
方法定义 | 描述 |
---|---|
abort():void | 终止文件读取操作 |
readasarraybuffer(file):void | 异步按字节读取文件内容,结果用arraybuffer对象表示 |
readasbinarystring(file):void | 异步按字节读取文件内容,结果为文件的二进制串 |
readasdataurl(file):void | 异步读取文件内容,结果用data:url的字符串形式表示 |
readastext(file,encoding):void | 异步按字符读取文件内容,结果用字符串形式表示 |
事件
事件名称 | 描述 |
---|---|
onabort | 当读取操作被中止时调用 |
onerror | 当读取操作发生错误时调用 |
onload | 当读取操作成功完成时调用 |
onloadend | 当读取操作完成时调用,不管是成功还是失败 |
onloadstart | 当读取操作将要开始之前调用 |
onprogress | 在读取数据过程中周期性调用 |
以上为个人经验,希望能给大家一个参考,也希望大家多多支持。
上一篇: window环境redis通过AOF恢复数据的方法
下一篇: 十个 PHP 开发者最容易犯的错误