Adriana, parte de este gran equipo, nos ha hecho el favor de crear este tutorial ya que controla a la perfección este tema.
Solución:
en los documentos de dart se ha explicado… dart:io no está disponible para compilación web… significa que no puede acceder directamente a los archivos del sistema en flutter web. la compilación fallará … debe eliminar el código para ejecutarlo
Esto es una cuestión de seguridad. aleteo
espero que tengas tu respuesta
La respuesta aceptada no es del todo correcta. Sí, dart:io no está disponible en la web, pero aún es posible leer archivos. Puede seleccionar un archivo a través del selector de archivos del sistema y leerlo después. Una opción sencilla para “escribir” un archivo es enviar al usuario una descarga automática.
Leer:
Utilice esta biblioteca para seleccionar un archivo: pub.dev/packages/file_picker (guía de migración web)
import 'dart:html' as webFile;
import 'package:file_picker_web/file_picker_web.dart' as webPicker;
if (kIsWeb)
final webFile.File file = await webPicker.FilePicker.getFile(
allowedExtensions: ['pd'],
type: FileType.custom,
);
final reader = webFile.FileReader();
reader.readAsText(file);
await reader.onLoad.first;
String data = reader.result;
Escribe (también conocido como descarga):
import 'dart:html' as webFile;
if (kIsWeb)
var blob = webFile.Blob(["data"], 'text/plain', 'native');
var anchorElement = webFile.AnchorElement(
href: webFile.Url.createObjectUrlFromBlob(blob).toString(),
)..setAttribute("download", "data.txt")..click();
Creé un paquete específicamente para esto antes de que Flutter web existiera. https://pub.dev/packages/async_resource
Considera las cosas como un recurso de red (generalmente a través de HTTP) o como un recurso local, como un archivo, almacenamiento local, caché del trabajador del servicio o preferencias compartidas.
No es lo más fácil del mundo, pero funciona.
Tienes la opción de favorecer nuestra misión añadiendo un comentario y puntuándolo te estamos agradecidos.