flutter read asset file and write to app path
1 min readFeb 12, 2019
I’am iOS Developer,and I’ve been learning flutter development for two weeks.
how to read a file in assets?
I searched for a large number of options, but none of them satisfied me. So I wrote one myself.
//import
import 'dart:async';
import 'dart:io';
import 'dart:typed_data';
import 'package:flutter/services.dart' show rootBundle;
import 'package:path_provider/path_provider.dart';//read and write
final filename = 'test.pdf';
var bytes = await rootBundle.load("assets/data/test.pdf");
String dir = (await getApplicationDocumentsDirectory()).path;
writeToFile(bytes,'$dir/$filename');//write to app path
Future<void> writeToFile(ByteData data, String path) {
final buffer = data.buffer;
return new File(path).writeAsBytes(
buffer.asUint8List(data.offsetInBytes, data.lengthInBytes));
}
yaml file
dependencies:
path_provider: ^0.5.0+1assets:
- assets/data/test.pdf
project dicretory