How to Read Files From Assets Folder as ByteData/Uint8List or String in Flutter App

In this example, we are going to show you how to load files such as audio, video, documents, images field from Asset Folder as ByteData, Uint8List, or base64 in Flutter App. We have sown the way to read text files as String. See the example below:

 Be sure, you have indexed asset folders and files in pubspec.yaml file.

flutter:

  # The following line ensures that the Material Icons font is
  # included with your application, so that you can use the icons in
  # the material Icons class.
  uses-material-design: true

  # To add assets to your application, add an assets section, like this:
  assets:
    - assets/audio/
    - assets/textfiles/
  #   - images/a_dot_ham.jpeg

And place your files in the assets folder.

import 'package:flutter/services.dart';
String textasset = "assets/textfiles/file.txt"; //path to text file asset
String text = await rootBundle.loadString(textasset);
print(text);
//output:  Text: Hello, this is FlutterCampus.com and you are learning Flutter.

import 'dart:typed_data';
import 'package:flutter/services.dart';
String audioasset = "assets/audio/ambulance_sound.mp3"; //path to asset
ByteData bytes = await rootBundle.load(audioasset); //load sound from assets
Uint8List  soundbytes = bytes.buffer.asUint8List(bytes.offsetInBytes, bytes.lengthInBytes);
//you can load image file too

You can load Image, PDF, DOCX, XLSX, and other file formats too from the Assets folder with this same code. You can convert this loaded file to any data type you want. Look at this reference to convert: How to Encode/Decode Path, File, Bytes, and Base64 in Dart/Flutter

import 'dart:convert';
String basestring = base64.encode(soundbytes);
print(basestring);

/* output:
SUQzAwAAAAAfdlBSSVYAAAAOAABQZWFrVmFsdWUAm34AAFBSSVYAAAARAABBdmVyYWdlTGV2ZWwAExkA 
.... more long string
*/

In this way, you can load or read any kind of files from the Assets Folder in the Flutter App.

No any Comments on this Article


Please Wait...