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
 is
 an
 example
");
        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 在读取数据过程中周期性调用
经验分享 程序员 微信小程序 职场和发展