readFileInChunks function

Future<Uint8List> readFileInChunks(
  1. File file
)

Implementation

Future<Uint8List> readFileInChunks(File file) async {
  const int chunkSize = 1024 * 1024; // 1MB chunks
  final fileStream = file.openRead();
  final chunks = <int>[];

  await for (final chunk in fileStream) {
    chunks.addAll(chunk);

    // Yield control periodically to prevent blocking
    if (chunks.length % (chunkSize * 5) == 0) {
      await Future.delayed(Duration.zero);
    }
  }

  return Uint8List.fromList(chunks);
}