readFileAs*
Envoltorios con promesas alrededor de FileReader.
| Función | Resuelve con | Sirve para |
|---|---|---|
readFileAsArrayBuffer(blob) | ArrayBuffer | Procesar binario |
readFileAsUint8Array(blob) | Uint8Array | Alimentar checkEncoding / arrayBufferToString |
readFileAsText(blob, encoding?) | string | Archivos de texto; si no sabes la codificación, olfatéala antes |
readFileAsDataURL(blob) | string | Vistas previas de imágenes |
Ejemplo
js
import { readFileAsUint8Array, arrayBufferToString } from 'ranuts';
input.addEventListener('change', async (e) => {
const bytes = await readFileAsUint8Array(e.target.files[0]);
const text = arrayBufferToString(bytes); // la codificación se olfatea, GBK/Big5 incluidos
});Notas
- Las tres salidas están conectadas:
onload,onerroryonabort. Olvidaronabortes la manera clásica de dejar una promesa pendiente para siempre cuando alguien cancela el selector de archivos. - Rechaza con un error claro allí donde no existe
FileReader(Node, algunos contextos de worker). - Nunca hagas
new TextDecoder().decode()sobre un archivo de origen desconocido: eso da por hecho UTF-8 y convierte GBK/Big5 en galimatías. UsaarrayBufferToString, que olfatea primero.