appendLine method

Future<void> appendLine(
  1. String filePath,
  2. List<String> linesToAdd,
  3. String appendAfterContainString,
  4. {bool isAfter = true}
)

Implementation

Future<void> appendLine(
    String filePath, List<String> linesToAdd, String appendAfterContainString,
    {bool isAfter = true}) async {
  final file = File(filePath);
  final lines = await file.readAsLines();
  bool found = false;

  for (int i = 0; i < lines.length; i++) {
    if (lines[i].contains(appendAfterContainString) && !found) {
      if (isAfter) {
        lines.insertAll(i + 1, linesToAdd);
      } else {
        lines.insertAll(i - 1, linesToAdd);
      }

      found = true;
      break;
    }
  }
  if (!found) {
    return;
  }
  await file.writeAsString(lines.join('\n'));
}