【发布时间】:2020-01-09 15:38:10
【问题描述】:
我正在尝试读取多行文件,每行上都有两位数字,代表二叉树结构。我正在使用 dart 和标准 io 库。这是我正在使用的代码:
String contents = new File('./assets/triangle.txt').readAsStringSync();
问题是我收到以下错误:
max_path_sum/assets/triangle.txt:1:1: Error: Expected a declaration, but got '75'.
75
^^
max_path_sum/assets/triangle.txt:2:1: Error: Expected a declaration, but got '95'.
95 64
^^
max_path_sum/assets/triangle.txt:2:4: Error: Expected a declaration, but got '64'.
95 64
^^
max_path_sum/assets/triangle.txt:3:1: Error: Expected a declaration, but got '17'.
17 47 82
^^
max_path_sum/assets/triangle.txt:3:4: Error: Expected a declaration, but got '47'.
17 47 82
^^
max_path_sum/assets/triangle.txt:3:7: Error: Expected a declaration, but got '82'.
17 47 82
^^
max_path_sum/assets/triangle.txt:4:1: Error: Expected a declaration, but got '18'.
18 35 87 10
^^
max_path_sum/assets/triangle.txt:4:4: Error: Expected a declaration, but got '35'.
18 35 87 10
^^
max_path_sum/assets/triangle.txt:4:7: Error: Expected a declaration, but got '87'.
18 35 87 10
^^
max_path_sum/assets/triangle.txt:4:10: Error: Expected a declaration, but got '10'.
18 35 87 10
^^
这是我要读取的文件:
75
95 64
17 47 82
18 35 87 10
20 04 82 47 65
19 01 23 75 03 34
88 02 77 73 07 63 67
99 65 04 28 06 16 70 92
41 41 26 56 83 40 80 70 33
41 48 72 33 47 32 37 16 94 29
53 71 44 65 25 43 91 52 97 51 14
70 11 33 28 77 73 17 78 39 68 17 57
91 71 52 38 17 14 91 43 58 50 27 29 48
63 66 04 68 89 53 67 30 73 16 69 87 40 31
04 62 98 27 23 09 70 98 73 93 38 53 60 04 23
我尝试了读取文件的不同变体。异步,同步,逐行,整个文件在一个字符串中,但不断收到相同的错误。它显然会读取这些行,但似乎期待其他形式的输入,并且不满意只给我它读取的数据......我在网上找到的所有示例都表明代码是正确的并且应该可以工作。所以我的猜测是,我可能必须对输入文件做一些事情才能被接受为有效输入,但这似乎不切实际,因为它能够正常读取数据。
我发现了问题。以下格式的文件适用于第一行:
var a = "75";
95 64
17 47 82
18 35 87 10
20 04 82 47 65
19 01 23 75 03 34
88 02 77 73 07 63 67
99 65 04 28 06 16 70 92
41 41 26 56 83 40 80 70 33
41 48 72 33 47 32 37 16 94 29
53 71 44 65 25 43 91 52 97 51 14
70 11 33 28 77 73 17 78 39 68 17 57
91 71 52 38 17 14 91 43 58 50 27 29 48
63 66 04 68 89 53 67 30 73 16 69 87 40 31
04 62 98 27 23 09 70 98 73 93 38 53 60 04 23
所以我想如果我把文件的内容变成一个字符串变量就可以了。但这是为什么呢? dart中不是不用先改内容就可以读取普通文本文件吗?
【问题讨论】:
-
你的代码运行得怎么样,感觉就像你在尝试将 triagle.txt.txt 作为 Dart 文件执行
-
试图删除 .txt 扩展名,但它仍然存在。我在 vscode 中使用 Code Runner 运行。尝试在终端中运行但同样的问题。
-
你正在执行 txt 文件而不是你的 Dart 程序!请检查您的 VS Code 配置并确保您正在执行正确的程序! :)
-
我在终端中输入了“dart main.dart”并得到了这个输出。即使我明确要求它执行 main.dart,是否有可能 dart 以某种方式执行文本文件?