From f9bc1ec66c59404014c804c37028695d06bff0f2 Mon Sep 17 00:00:00 2001 From: Peter Resch Date: Sat, 12 Dec 2020 13:37:42 -0600 Subject: [PATCH] Update ReadData to use a generic --- aoc2020/lib/aoc20201201.dart | 6 ++---- aoc2020/lib/aoc20201202.dart | 6 ++---- aoc2020/lib/aoc20201203.dart | 6 ++---- aoc2020/lib/aoc20201204.dart | 8 ++------ aoc2020/lib/aoc20201205.dart | 6 ++---- aoc2020/lib/aoc20201206.dart | 8 ++------ aoc2020/lib/aoc20201207.dart | 6 ++---- aoc2020/lib/aoc20201208.dart | 6 ++---- aoc2020/lib/aoc20201209.dart | 10 ++++------ aoc2020/lib/aoc20201211.dart | 12 ++++++++---- aoc2020/lib/aoc20201212.dart | 12 ++++++++---- aoc2020/lib/aoc20201213.dart | 12 ++++++++---- aoc2020/lib/aoc20201214.dart | 12 ++++++++---- aoc2020/lib/aoc20201215.dart | 12 ++++++++---- aoc2020/lib/aoc20201216.dart | 12 ++++++++---- aoc2020/lib/aoc20201217.dart | 12 ++++++++---- aoc2020/lib/aoc20201218.dart | 12 ++++++++---- aoc2020/lib/aoc20201219.dart | 12 ++++++++---- aoc2020/lib/aoc20201220.dart | 12 ++++++++---- aoc2020/lib/aoc20201221.dart | 12 ++++++++---- aoc2020/lib/aoc20201222.dart | 12 ++++++++---- aoc2020/lib/aoc20201223.dart | 12 ++++++++---- aoc2020/lib/aoc20201224.dart | 12 ++++++++---- aoc2020/lib/aoc20201225.dart | 12 ++++++++---- aoc2020/lib/model/readdata.dart | 26 ++++++++------------------ 25 files changed, 148 insertions(+), 120 deletions(-) diff --git a/aoc2020/lib/aoc20201201.dart b/aoc2020/lib/aoc20201201.dart index b679050..85bedf1 100644 --- a/aoc2020/lib/aoc20201201.dart +++ b/aoc2020/lib/aoc20201201.dart @@ -4,8 +4,7 @@ import 'package:aoc2020/model/readdata.dart'; class AOC20201201 extends AOCBase { @override Future a({bool test}) async { - var filename = (test ?? false) ? classStringTest : classString; - var mylist = await ReadData.readFileNum(filename); + var mylist = await ReadData.readFile(classString, test: test); for (var index1 = 0; index1 < mylist.length - 1; index1++) { for (var index2 = index1 + 1; index2 < mylist.length; index2++) { if (mylist[index1] + mylist[index2] == 2020) { @@ -17,8 +16,7 @@ class AOC20201201 extends AOCBase { @override Future b({bool test}) async { - var filename = (test ?? false) ? classStringTest : classString; - var mylist = await ReadData.readFileNum(filename); + var mylist = await ReadData.readFile(classString, test: test); for (var index1 = 0; index1 < mylist.length - 1; index1++) { for (var index2 = index1 + 1; index2 < mylist.length; index2++) { for (var index3 = index2 + 1; index3 < mylist.length; index3++) { diff --git a/aoc2020/lib/aoc20201202.dart b/aoc2020/lib/aoc20201202.dart index d328106..c91fe16 100644 --- a/aoc2020/lib/aoc20201202.dart +++ b/aoc2020/lib/aoc20201202.dart @@ -5,8 +5,7 @@ import 'package:aoc2020/model/readdata.dart'; class AOC20201202 extends AOCBase { @override Future a({bool test}) async { - var filename = (test ?? false) ? classStringTest : classString; - var mylist = await ReadData.readFileString(filename); + var mylist = await ReadData.readFile(classString, test: test); var validPasswords = 0; for (var index = 0; index < mylist.length; index++) { var mysplit = mylist[index].split(' '); @@ -23,8 +22,7 @@ class AOC20201202 extends AOCBase { @override Future b({bool test}) async { - var filename = (test ?? false) ? classStringTest : classString; - var mylist = await ReadData.readFileString(filename); + var mylist = await ReadData.readFile(classString, test: test); var validPasswords = 0; for (var index = 0; index < mylist.length; index++) { var mysplit = mylist[index].split(' '); diff --git a/aoc2020/lib/aoc20201203.dart b/aoc2020/lib/aoc20201203.dart index 9ee841e..621434a 100644 --- a/aoc2020/lib/aoc20201203.dart +++ b/aoc2020/lib/aoc20201203.dart @@ -24,15 +24,13 @@ class AOC20201203 extends AOCBase { @override Future a({bool test}) async { - var filename = (test ?? false) ? classStringTest : classString; - var mylist = await ReadData.readFileString(filename); + var mylist = await ReadData.readFile(classString, test: test); answerA = tobogganRide(hill: mylist, start: Point(0, 0), slope: Point(3, 1)); } @override Future b({bool test}) async { - var filename = (test ?? false) ? classStringTest : classString; - var mylist = await ReadData.readFileString(filename); + var mylist = await ReadData.readFile(classString, test: test); var slopes = [Point(1, 1), Point(3, 1), Point(5, 1), Point(7, 1), Point(1, 2)]; answerB = 0; diff --git a/aoc2020/lib/aoc20201204.dart b/aoc2020/lib/aoc20201204.dart index 8ac3eb7..cb065f6 100644 --- a/aoc2020/lib/aoc20201204.dart +++ b/aoc2020/lib/aoc20201204.dart @@ -76,17 +76,13 @@ class AOC20201204 extends AOCBase { @override Future a({bool test}) async { - var filename = (test ?? false) ? classStringTest : classString; - var mylist = await ReadData.readFileString(filename); - + var mylist = await ReadData.readFile(classString, test: test); answerA = processList(input: mylist, validatorFn: valid1); } @override Future b({bool test}) async { - var filename = (test ?? false) ? classStringTest : classString; - var mylist = await ReadData.readFileString(filename); - + var mylist = await ReadData.readFile(classString, test: test); answerB = processList(input: mylist, validatorFn: valid2); } } diff --git a/aoc2020/lib/aoc20201205.dart b/aoc2020/lib/aoc20201205.dart index d859687..6a8df1a 100644 --- a/aoc2020/lib/aoc20201205.dart +++ b/aoc2020/lib/aoc20201205.dart @@ -20,8 +20,7 @@ class AOC20201205 extends AOCBase { @override Future a({bool test}) async { - var filename = (test ?? false) ? classStringTest : classString; - var mylist = await ReadData.readFileString(filename); + var mylist = await ReadData.readFile(classString, test: test); var maxSeatId = 0; for (var row in mylist) { var seat = calcSeat(row); @@ -33,8 +32,7 @@ class AOC20201205 extends AOCBase { @override Future b({bool test}) async { - var filename = (test ?? false) ? classStringTest : classString; - var mylist = await ReadData.readFileString(filename); + var mylist = await ReadData.readFile(classString, test: test); var plane = List.generate(128, (i) => List.generate(8, (j) => false, growable: false), growable: false); for (var row in mylist) { diff --git a/aoc2020/lib/aoc20201206.dart b/aoc2020/lib/aoc20201206.dart index 1cb3695..7541e5b 100644 --- a/aoc2020/lib/aoc20201206.dart +++ b/aoc2020/lib/aoc20201206.dart @@ -35,17 +35,13 @@ class AOC20201206 extends AOCBase { @override Future a({bool test}) async { - var filename = (test ?? false) ? classStringTest : classString; - var mylist = await ReadData.readFileString(filename); - + var mylist = await ReadData.readFile(classString, test: test); answerA = voterTabulation(rawList: mylist, isIntersection: false); } @override Future b({bool test}) async { - var filename = (test ?? false) ? classStringTest : classString; - var mylist = await ReadData.readFileString(filename); - + var mylist = await ReadData.readFile(classString, test: test); answerB = voterTabulation(rawList: mylist, isIntersection: true); } } diff --git a/aoc2020/lib/aoc20201207.dart b/aoc2020/lib/aoc20201207.dart index 9a42eb3..6c637e2 100644 --- a/aoc2020/lib/aoc20201207.dart +++ b/aoc2020/lib/aoc20201207.dart @@ -106,8 +106,7 @@ class AOC20201207 extends AOCBase { @override Future a({bool test}) async { - var filename = (test ?? false) ? classStringTest : classString; - var mylist = await ReadData.readFileString(filename); + var mylist = await ReadData.readFile(classString, test: test); leaves = []; // Zero out list trees = []; @@ -140,8 +139,7 @@ class AOC20201207 extends AOCBase { @override Future b({bool test}) async { - var filename = (test ?? false) ? classStringTest : classString; - var mylist = await ReadData.readFileString(filename); + var mylist = await ReadData.readFile(classString, test: test); leaves = []; // Zero out list trees = []; diff --git a/aoc2020/lib/aoc20201208.dart b/aoc2020/lib/aoc20201208.dart index d6e6a95..3658c21 100644 --- a/aoc2020/lib/aoc20201208.dart +++ b/aoc2020/lib/aoc20201208.dart @@ -5,8 +5,7 @@ import 'package:aoc2020/model/readdata.dart'; class AOC20201208 extends AOCBase { @override Future a({bool test}) async { - var filename = (test ?? false) ? classStringTest : classString; - var mylist = await ReadData.readFileString(filename); + var mylist = await ReadData.readFile(classString, test: test); Comp().reset(); var index = 0; var notDone = true; @@ -21,8 +20,7 @@ class AOC20201208 extends AOCBase { Future b({bool test}) async { var jmpList = []; var nopList = []; - var filename = (test ?? false) ? classStringTest : classString; - var mylist = await ReadData.readFileString(filename); + var mylist = await ReadData.readFile(classString, test: test); for (var index = 0; index < mylist.length; index++) { var parse = mylist[index].split(' '); if (parse[0] == 'jmp') jmpList.add(index); diff --git a/aoc2020/lib/aoc20201209.dart b/aoc2020/lib/aoc20201209.dart index 81829e1..a26bb1b 100644 --- a/aoc2020/lib/aoc20201209.dart +++ b/aoc2020/lib/aoc20201209.dart @@ -8,8 +8,8 @@ class AOC20201209 extends AOCBase { int index; var mylist = []; - void init(String filename, bool test) async { - mylist = await ReadData.readFileNum(filename); + void init(bool test) async { + mylist = await ReadData.readFile(classString, test: test); preamble = test ?? false ? testpreamble : runpreamble; index = preamble; } @@ -35,8 +35,7 @@ class AOC20201209 extends AOCBase { @override Future a({bool test}) async { - var filename = (test ?? false) ? classStringTest : classString; - await init(filename, test); + await init(test); for (index = preamble; index < mylist.length && testGroup(index); index++); if (index < mylist.length) { answerA = mylist[index]; @@ -47,8 +46,7 @@ class AOC20201209 extends AOCBase { @override Future b({bool test}) async { - var filename = (test ?? false) ? classStringTest : classString; - await init(filename, test); + await init(test); index = 0; for (index = 0; index < mylist.length; index++) { var mysum = sumTest(answerA, index); diff --git a/aoc2020/lib/aoc20201211.dart b/aoc2020/lib/aoc20201211.dart index a1d1fa4..2608b54 100644 --- a/aoc2020/lib/aoc20201211.dart +++ b/aoc2020/lib/aoc20201211.dart @@ -2,15 +2,19 @@ import 'package:aoc2020/aocbase.dart'; import 'package:aoc2020/model/readdata.dart'; class AOC20201211 extends AOCBase { + var mylist = []; + + void init(bool test) async { + mylist = await ReadData.readFile(classString, test: test); + } + @override Future a({bool test}) async { - var filename = (test ?? false) ? classStringTest : classString; - var mylist = await ReadData.readFileString(filename); + await init(test); } @override Future b({bool test}) async { - var filename = (test ?? false) ? classStringTest : classString; - var mylist = await ReadData.readFileString(filename); + await init(test); } } diff --git a/aoc2020/lib/aoc20201212.dart b/aoc2020/lib/aoc20201212.dart index 2f64197..33f6be9 100644 --- a/aoc2020/lib/aoc20201212.dart +++ b/aoc2020/lib/aoc20201212.dart @@ -2,15 +2,19 @@ import 'package:aoc2020/aocbase.dart'; import 'package:aoc2020/model/readdata.dart'; class AOC20201212 extends AOCBase { + var mylist = []; + + void init(bool test) async { + mylist = await ReadData.readFile(classString, test: test); + } + @override Future a({bool test}) async { - var filename = (test ?? false) ? classStringTest : classString; - var mylist = await ReadData.readFileString(filename); + await init(test); } @override Future b({bool test}) async { - var filename = (test ?? false) ? classStringTest : classString; - var mylist = await ReadData.readFileString(filename); + await init(test); } } diff --git a/aoc2020/lib/aoc20201213.dart b/aoc2020/lib/aoc20201213.dart index 88175a5..161888f 100644 --- a/aoc2020/lib/aoc20201213.dart +++ b/aoc2020/lib/aoc20201213.dart @@ -2,15 +2,19 @@ import 'package:aoc2020/aocbase.dart'; import 'package:aoc2020/model/readdata.dart'; class AOC20201213 extends AOCBase { + var mylist = []; + + void init(bool test) async { + mylist = await ReadData.readFile(classString, test: test); + } + @override Future a({bool test}) async { - var filename = (test ?? false) ? classStringTest : classString; - var mylist = await ReadData.readFileString(filename); + await init(test); } @override Future b({bool test}) async { - var filename = (test ?? false) ? classStringTest : classString; - var mylist = await ReadData.readFileString(filename); + await init(test); } } diff --git a/aoc2020/lib/aoc20201214.dart b/aoc2020/lib/aoc20201214.dart index ecdd98a..cb817ad 100644 --- a/aoc2020/lib/aoc20201214.dart +++ b/aoc2020/lib/aoc20201214.dart @@ -2,15 +2,19 @@ import 'package:aoc2020/aocbase.dart'; import 'package:aoc2020/model/readdata.dart'; class AOC20201214 extends AOCBase { + var mylist = []; + + void init(bool test) async { + mylist = await ReadData.readFile(classString, test: test); + } + @override Future a({bool test}) async { - var filename = (test ?? false) ? classStringTest : classString; - var mylist = await ReadData.readFileString(filename); + await init(test); } @override Future b({bool test}) async { - var filename = (test ?? false) ? classStringTest : classString; - var mylist = await ReadData.readFileString(filename); + await init(test); } } diff --git a/aoc2020/lib/aoc20201215.dart b/aoc2020/lib/aoc20201215.dart index 71724c6..b0f4a14 100644 --- a/aoc2020/lib/aoc20201215.dart +++ b/aoc2020/lib/aoc20201215.dart @@ -2,15 +2,19 @@ import 'package:aoc2020/aocbase.dart'; import 'package:aoc2020/model/readdata.dart'; class AOC20201215 extends AOCBase { + var mylist = []; + + void init(bool test) async { + mylist = await ReadData.readFile(classString, test: test); + } + @override Future a({bool test}) async { - var filename = (test ?? false) ? classStringTest : classString; - var mylist = await ReadData.readFileString(filename); + await init(test); } @override Future b({bool test}) async { - var filename = (test ?? false) ? classStringTest : classString; - var mylist = await ReadData.readFileString(filename); + await init(test); } } diff --git a/aoc2020/lib/aoc20201216.dart b/aoc2020/lib/aoc20201216.dart index 5ac96fb..6030cb9 100644 --- a/aoc2020/lib/aoc20201216.dart +++ b/aoc2020/lib/aoc20201216.dart @@ -2,15 +2,19 @@ import 'package:aoc2020/aocbase.dart'; import 'package:aoc2020/model/readdata.dart'; class AOC20201216 extends AOCBase { + var mylist = []; + + void init(bool test) async { + mylist = await ReadData.readFile(classString, test: test); + } + @override Future a({bool test}) async { - var filename = (test ?? false) ? classStringTest : classString; - var mylist = await ReadData.readFileString(filename); + await init(test); } @override Future b({bool test}) async { - var filename = (test ?? false) ? classStringTest : classString; - var mylist = await ReadData.readFileString(filename); + await init(test); } } diff --git a/aoc2020/lib/aoc20201217.dart b/aoc2020/lib/aoc20201217.dart index b0a17cb..aa3e0d7 100644 --- a/aoc2020/lib/aoc20201217.dart +++ b/aoc2020/lib/aoc20201217.dart @@ -2,15 +2,19 @@ import 'package:aoc2020/aocbase.dart'; import 'package:aoc2020/model/readdata.dart'; class AOC20201217 extends AOCBase { + var mylist = []; + + void init(bool test) async { + mylist = await ReadData.readFile(classString, test: test); + } + @override Future a({bool test}) async { - var filename = (test ?? false) ? classStringTest : classString; - var mylist = await ReadData.readFileString(filename); + await init(test); } @override Future b({bool test}) async { - var filename = (test ?? false) ? classStringTest : classString; - var mylist = await ReadData.readFileString(filename); + await init(test); } } diff --git a/aoc2020/lib/aoc20201218.dart b/aoc2020/lib/aoc20201218.dart index 8155871..2c4004b 100644 --- a/aoc2020/lib/aoc20201218.dart +++ b/aoc2020/lib/aoc20201218.dart @@ -2,15 +2,19 @@ import 'package:aoc2020/aocbase.dart'; import 'package:aoc2020/model/readdata.dart'; class AOC20201218 extends AOCBase { + var mylist = []; + + void init(bool test) async { + mylist = await ReadData.readFile(classString, test: test); + } + @override Future a({bool test}) async { - var filename = (test ?? false) ? classStringTest : classString; - var mylist = await ReadData.readFileString(filename); + await init(test); } @override Future b({bool test}) async { - var filename = (test ?? false) ? classStringTest : classString; - var mylist = await ReadData.readFileString(filename); + await init(test); } } diff --git a/aoc2020/lib/aoc20201219.dart b/aoc2020/lib/aoc20201219.dart index 2b48a06..1138d2a 100644 --- a/aoc2020/lib/aoc20201219.dart +++ b/aoc2020/lib/aoc20201219.dart @@ -2,15 +2,19 @@ import 'package:aoc2020/aocbase.dart'; import 'package:aoc2020/model/readdata.dart'; class AOC20201219 extends AOCBase { + var mylist = []; + + void init(bool test) async { + mylist = await ReadData.readFile(classString, test: test); + } + @override Future a({bool test}) async { - var filename = (test ?? false) ? classStringTest : classString; - var mylist = await ReadData.readFileString(filename); + await init(test); } @override Future b({bool test}) async { - var filename = (test ?? false) ? classStringTest : classString; - var mylist = await ReadData.readFileString(filename); + await init(test); } } diff --git a/aoc2020/lib/aoc20201220.dart b/aoc2020/lib/aoc20201220.dart index 819f547..3f54918 100644 --- a/aoc2020/lib/aoc20201220.dart +++ b/aoc2020/lib/aoc20201220.dart @@ -2,15 +2,19 @@ import 'package:aoc2020/aocbase.dart'; import 'package:aoc2020/model/readdata.dart'; class AOC20201220 extends AOCBase { + var mylist = []; + + void init(bool test) async { + mylist = await ReadData.readFile(classString, test: test); + } + @override Future a({bool test}) async { - var filename = (test ?? false) ? classStringTest : classString; - var mylist = await ReadData.readFileString(filename); + await init(test); } @override Future b({bool test}) async { - var filename = (test ?? false) ? classStringTest : classString; - var mylist = await ReadData.readFileString(filename); + await init(test); } } diff --git a/aoc2020/lib/aoc20201221.dart b/aoc2020/lib/aoc20201221.dart index ab2b533..3fe6be5 100644 --- a/aoc2020/lib/aoc20201221.dart +++ b/aoc2020/lib/aoc20201221.dart @@ -2,15 +2,19 @@ import 'package:aoc2020/aocbase.dart'; import 'package:aoc2020/model/readdata.dart'; class AOC20201221 extends AOCBase { + var mylist = []; + + void init(bool test) async { + mylist = await ReadData.readFile(classString, test: test); + } + @override Future a({bool test}) async { - var filename = (test ?? false) ? classStringTest : classString; - var mylist = await ReadData.readFileString(filename); + await init(test); } @override Future b({bool test}) async { - var filename = (test ?? false) ? classStringTest : classString; - var mylist = await ReadData.readFileString(filename); + await init(test); } } diff --git a/aoc2020/lib/aoc20201222.dart b/aoc2020/lib/aoc20201222.dart index f621f97..47eb8c7 100644 --- a/aoc2020/lib/aoc20201222.dart +++ b/aoc2020/lib/aoc20201222.dart @@ -2,15 +2,19 @@ import 'package:aoc2020/aocbase.dart'; import 'package:aoc2020/model/readdata.dart'; class AOC20201222 extends AOCBase { + var mylist = []; + + void init(bool test) async { + mylist = await ReadData.readFile(classString, test: test); + } + @override Future a({bool test}) async { - var filename = (test ?? false) ? classStringTest : classString; - var mylist = await ReadData.readFileString(filename); + await init(test); } @override Future b({bool test}) async { - var filename = (test ?? false) ? classStringTest : classString; - var mylist = await ReadData.readFileString(filename); + await init(test); } } diff --git a/aoc2020/lib/aoc20201223.dart b/aoc2020/lib/aoc20201223.dart index 718c79c..92c1be4 100644 --- a/aoc2020/lib/aoc20201223.dart +++ b/aoc2020/lib/aoc20201223.dart @@ -2,15 +2,19 @@ import 'package:aoc2020/aocbase.dart'; import 'package:aoc2020/model/readdata.dart'; class AOC20201223 extends AOCBase { + var mylist = []; + + void init(bool test) async { + mylist = await ReadData.readFile(classString, test: test); + } + @override Future a({bool test}) async { - var filename = (test ?? false) ? classStringTest : classString; - var mylist = await ReadData.readFileString(filename); + await init(test); } @override Future b({bool test}) async { - var filename = (test ?? false) ? classStringTest : classString; - var mylist = await ReadData.readFileString(filename); + await init(test); } } diff --git a/aoc2020/lib/aoc20201224.dart b/aoc2020/lib/aoc20201224.dart index 091d843..e4b582f 100644 --- a/aoc2020/lib/aoc20201224.dart +++ b/aoc2020/lib/aoc20201224.dart @@ -2,15 +2,19 @@ import 'package:aoc2020/aocbase.dart'; import 'package:aoc2020/model/readdata.dart'; class AOC20201224 extends AOCBase { + var mylist = []; + + void init(bool test) async { + mylist = await ReadData.readFile(classString, test: test); + } + @override Future a({bool test}) async { - var filename = (test ?? false) ? classStringTest : classString; - var mylist = await ReadData.readFileString(filename); + await init(test); } @override Future b({bool test}) async { - var filename = (test ?? false) ? classStringTest : classString; - var mylist = await ReadData.readFileString(filename); + await init(test); } } diff --git a/aoc2020/lib/aoc20201225.dart b/aoc2020/lib/aoc20201225.dart index a3672f8..aee5745 100644 --- a/aoc2020/lib/aoc20201225.dart +++ b/aoc2020/lib/aoc20201225.dart @@ -2,15 +2,19 @@ import 'package:aoc2020/aocbase.dart'; import 'package:aoc2020/model/readdata.dart'; class AOC20201225 extends AOCBase { + var mylist = []; + + void init(bool test) async { + mylist = await ReadData.readFile(classString, test: test); + } + @override Future a({bool test}) async { - var filename = (test ?? false) ? classStringTest : classString; - var mylist = await ReadData.readFileString(filename); + await init(test); } @override Future b({bool test}) async { - var filename = (test ?? false) ? classStringTest : classString; - var mylist = await ReadData.readFileString(filename); + await init(test); } } diff --git a/aoc2020/lib/model/readdata.dart b/aoc2020/lib/model/readdata.dart index 87afc38..9f9312d 100644 --- a/aoc2020/lib/model/readdata.dart +++ b/aoc2020/lib/model/readdata.dart @@ -3,29 +3,19 @@ import 'dart:io'; class ReadData { static const prefix = 'lib/data/'; - static Future> readFileString(String classString) async { - var fileName = prefix + classString.toLowerCase() + '.data'; + static Future> readFile(String classString, {bool test}) async { + var fileName = prefix + classString.toLowerCase() + (test ?? false ? 'test' : '') + '.data'; var file = File(fileName); - var contents = []; - - // print('open file "$fileName"'); - if (await file.exists()) { - contents = await File(fileName).readAsLines(); - } else { - print('File "$fileName" not found.'); - } - return contents; - } - - static Future> readFileNum(String classString) async { - var fileName = prefix + classString.toLowerCase() + '.data'; - var file = File(fileName); - var contents = []; + var contents = []; // print('open file "$fileName"'); if (await file.exists()) { var contentStrings = await File(fileName).readAsLines(); - contents = contentStrings.map(num.parse).toList(); + if (T == num) { + contents = contentStrings.map(num.parse).toList() as List; + } else if (T == String) { + contents = contentStrings as List; + } } else { print('File "$fileName" not found.'); }