FileReaderSync

FileReaderSync接口允许以同步的方式读取FileBlob对象中的内容。

该接口只在workers可用,因为在主线程里进行同步I/O操作可能会阻塞用户界面。

方法概述

ArrayBuffer readAsArrayBuffer(Blob blob);
DOMString readAsBinaryString(Blob blob);
DOMString readAsText(Blob blob, optional DOMString encoding);
DOMString readAsDataURL(Blob blob);

属性

该接口没有任何属性。

方法

readAsArrayBuffer()

该方法可以读取指定的 Blob 或者 File对象中的内容。当读取完毕后,返回一个 ArrayBuffer 对象,里面包含了被读取文件的内容数据。如果在读取过程中发生了错误,则会抛出相关的异常。

ArrayBuffer readAsArrayBuffer(
  in Blob blob
);

参数

blob
将要被读取内容的BlobFile 对象.

返回值

一个 ArrayBuffer 对象,包含了被读取文件的内容.

异常

该方法可能引发下述异常:

NotFoundError
BlobFile对象指代的资源无法找到时,触发该异常.比如,该资源已被删除的情况下.
SecurityError
当检测到下述几种问题情形时触发该异常:
  • 资源已被第三方修改;
  • 同时在进行多个读取操作;
  • 资源的安全级别过高,不允许浏览器进行操作(比如系统文件)。
NotReadableError
当资源由于权限问题不能被读取时触发该异常。比如并发锁。
EncodingError
当资源是一个data URL,并且超过了浏览器的限制大小时触发该异常。

readAsBinaryString()

该方法可以读取指定的 Blob 或者 File对象的内容。当读取完毕后,返回一个DOMString对象,里面包含了被读取文件的二进制数据.如果在读取过程中发生了错误,则会抛出相关的异常。

注意 :该方法已被废弃,应该使用readAsArrayBuffer()来替代.
String readAsBinaryString(
  in Blob blob
);

参数

blob
将要被读取内容的BlobFile 对象.

返回值

一个DOMString对象,包含了从资源中读取的二进制数据.

异常

该方法可能引发下述异常:

NotFoundError
BlobFile对象指代的资源无法找到时,触发该异常。比如,该资源已被删除的情况下。
SecurityError
当检测到下述几种问题情形时触发该异常:
  • 资源已被第三方修改;
  • 同时在进行多个读取操作;
  • 资源的安全级别过高,不允许浏览器进行操作(比如系统文件)。
NotReadableError
当资源由于权限问题不能被读取时触发该异常(比如并发锁)。
EncodingError
当资源是一个data URL,并且超过了浏览器的限制大小时触发该异常。

readAsText()

该方法可以读取指定的 Blob 或者 File对象的内容。当读取完毕后,返回一个DOMString对象,里面包含了被读取文件的内容数据。可选参数 encoding 用来表示文件的编码类型,如果省略该参数,则该方法会使用一些算法自动检测文件的编码类型.如果在读取过程中发生了错误,则会抛出相关的异常。

String readAsText(
  in Blob blob,
  in DOMString encoding 可选
);

参数

blob
将要被读取内容的BlobFile 对象。
encoding
可选参数,表示被读取文件的编码类型, 比如GBK 或者 UTF-8。

返回值

一个DOMString对象,包含了被读取文件的内容。

异常

该方法可能引发下述异常:

NotFoundError
BlobFile对象指代的资源无法找到时,触发该异常。比如,该资源已被删除的情况下。
SecurityError
当检测到下述几种问题情形时触发该异常:
  • 资源已被第三方修改;
  • 同时在进行多个读取操作;
  • 资源的安全级别过高,不允许浏览器进行操作。(比如系统文件)。
NotReadableError
当资源由于权限问题不能被读取时触发该异常(比如并发锁)。

readAsDataURL()

该方法可以读取指定的 Blob 或者 File对象的内容。当读取完毕后,返回一个Data URL格式的DOMString对象,里面包含了被读取文件的内容数据。如果在读取过程中发生了错误,则会抛出相关的异常。

String readAsDataURL(
  in Blob file
);

参数

blob
将要被读取内容的BlobFile 对象。

返回值

一个DOMString对象,data URL格式,包含了被读取文件的内容。

异常

该方法可能引发下述异常:

NotFoundError
BlobFile对象指代的资源无法找到时,触发该异常。比如,该资源已被删除的情况下。
SecurityError
当检测到下述几种问题情形时触发该异常:
  • 资源已被第三方修改;
  • 同时在进行多个读取操作;
  • 资源的安全级别过高,不允许浏览器进行操作(比如系统文件)。
NotReadableError
当资源由于权限问题不能被读取时触发该异常(比如并发锁)。
EncodingError
当资源是一个data URL,并且超过了浏览器的限制大小时触发该异常。

Specifications

 

Specification Status Comment
File API
FileReaderSync
Working Draft Initial definition.

浏览器兼容性

Update compatibility data on GitHub
DesktopMobile
ChromeEdgeFirefoxInternet ExplorerOperaSafariAndroid webviewChrome for AndroidFirefox for AndroidOpera for AndroidSafari on iOSSamsung Internet
FileReaderSyncChrome Full support YesEdge Full support YesFirefox Full support 8IE Full support YesOpera Full support YesSafari Full support YesWebView Android Full support YesChrome Android Full support YesFirefox Android Full support 8Opera Android Full support YesSafari iOS Full support YesSamsung Internet Android ?
readAsArrayBufferChrome Full support YesEdge Full support YesFirefox Full support 8IE Full support YesOpera Full support YesSafari Full support YesWebView Android Full support YesChrome Android Full support YesFirefox Android Full support 8Opera Android Full support YesSafari iOS Full support YesSamsung Internet Android ?
readAsBinaryStringChrome Full support YesEdge Full support YesFirefox Full support 8IE Full support YesOpera Full support YesSafari Full support YesWebView Android Full support YesChrome Android Full support YesFirefox Android Full support 8Opera Android Full support YesSafari iOS Full support YesSamsung Internet Android ?
readAsDataURLChrome Full support YesEdge Full support YesFirefox Full support 8IE Full support YesOpera Full support YesSafari Full support YesWebView Android Full support YesChrome Android Full support YesFirefox Android Full support 8Opera Android Full support YesSafari iOS Full support YesSamsung Internet Android ?
readAsTextChrome Full support YesEdge Full support YesFirefox Full support 8IE Full support YesOpera Full support YesSafari Full support YesWebView Android Full support YesChrome Android Full support YesFirefox Android Full support 8Opera Android Full support YesSafari iOS Full support YesSamsung Internet Android ?
Service workers support
DeprecatedNon-standard
Chrome No support ? — 59Edge ? Firefox No support ? — 61IE No support NoOpera No support ? — 46Safari No support NoWebView Android No support ? — 59Chrome Android No support ? — 59Firefox Android No support ? — 61Opera Android No support ? — 43Safari iOS No support NoSamsung Internet Android ?
Available in workersChrome Full support YesEdge Full support YesFirefox Full support 8IE Full support YesOpera Full support YesSafari Full support YesWebView Android Full support YesChrome Android Full support YesFirefox Android Full support 8Opera Android Full support YesSafari iOS Full support YesSamsung Internet Android ?

Legend

Full support  
Full support
No support  
No support
Compatibility unknown  
Compatibility unknown
Non-standard. Expect poor cross-browser support.
Non-standard. Expect poor cross-browser support.
Deprecated. Not for use in new websites.
Deprecated. Not for use in new websites.

相关链接