我是飞镖语言的新手。
我想使用库dart:io读取文件(test.txt)。我第一次尝试基于此链接: https://v1-dartlang-org.firebaseapp.com/dart-vm/io-library-tour
但是经过那些尝试,尝试读取文件时仍然出现错误,我什么都没找到,所以我在这里问,有没有人有任何解决方案或想法,可能是什么问题? / p>
这是我尝试读取的代码和文件(以UTF-8编码)。
configReader.dart
import 'dart:io';
import 'dart:convert';
class ConfigReader{
ConfigReader(){
var configFile = new File("test.txt");
var text;
configFile.readAsLines(encoding : Encoding.getByName("utf-8"));
}
}
test.txt
line1
line2
line3
line4
我遇到的错误:
例外:不支持的操作:_Namespace STACKTRACE: dart:sdk_internal
readAsLines软件包:insightos / src / utils / init / configReader.dart 11:15
新软件包:insightos / src / utils / init / utils.dart 35:5
getHost软件包:insightos / src / utils / init / utils.dart 72:13
getSandayaNewEndpointService 包裹:insightos / src / utils / linker / query_factory.dart 52:21 loadClientConfiguration dart:sdk_internal
异步包:insightos / src / utils / linker / query_factory.dart 51:70 loadClientConfiguration 软件包:insightos / src / utils / init / authenticator.dart 85:65 initApp dart:sdk_internal异步 软件包:insightos / src / utils / init / authenticator.dart 83:44 initApp 软件包:insightos / src / utils / init / authenticator.dart 66:7
initAuthentication包:stack_trace
arg包:angular / src / core / zone / ng_zone.dart 190:16 arg dart:sdk_internal runUnary 封装:angular / src / core / zone / ng_zone.dart 187:18
[_runUnary] dart:sdk_internal
.scheduleMicrotask.dart.fn 封装:angular / src / core / zone / ng_zone.dart 163:9
safeMicrotask包:stack_trace
parent.registerCallback.dart.fn 封装:angular / src / core / zone / ng_zone.dart 178:16
parent.run.dart.fn dart:sdk_internal
运行package:angular / src / core / zone / ng_zone.dart 175:18
[_run]package:insightos / src / utils / linker / query_factory.dart 51:70 loadClientConfiguration 软件包:insightos / src / utils / init / authenticator.dart 85:65 initApp dart:sdk_internal异步 软件包:insightos / src / utils / init / authenticator.dart 83:44 initApp 软件包:insightos / src / utils / init / authenticator.dart 66:7
initAuthentication包:stack_trace
arg包:angular / src / core / zone / ng_zone.dart 190:16 arg dart:sdk_internal runUnary 封装:angular / src / core / zone / ng_zone.dart 187:18
[_runUnary] dart:sdk_internal
.scheduleMicrotask.dart.fn 封装:angular / src / core / zone / ng_zone.dart 163:9
safeMicrotask包:stack_trace
parent.registerCallback.dart.fn 封装:angular / src / core / zone / ng_zone.dart 178:16
parent.run.dart.fn dart:sdk_internal
运行package:angular / src / core / zone / ng_zone.dart 175:18
[_run]dart:sdk_internal
异步包:insightos / src / utils / init / authenticator.dart 61:40
initAuthentication软件包:insightos / src / utils / init / authenticator.dart 58:5 ngOnInit 包裹:insightos / src / components / app_bar / app_bar.template.dart 471:25 detectChanges内部包:角/源/核心/链接器/ app_view.dart 398:7 detectChanges 软件包:insightos / src / utils / app / insightOS.template.dart 366:16
detectChanges内部包:角/源/核心/链接器/ app_view.dart 398:7 detectChanges 包:insightos / src / utils / app / insightOS.template.dart 413:16
detectChanges内部包:角/源/核心/链接器/ app_view.dart 398:7 detectChanges 封装:angular / src / core / linker / view_ref.dart 106:12
detectChanges包:角度/源/核心/change_detection/host.dart 168:18 [_runTick] 封装:angular / src / core / change_detection / host.dart 144:15
勾号包:角/源/核心/ application_ref.dart 108:5 [_loadedRootComponent]软件包:angular / src / core / application_ref.dart 96:27
src__runtime__optimizations.unsafeCast.run.dart.fn 软件包:angular / src / core / change_detection / host.dart 250:18
runInZone.dart.fn软件包:angular / src / core / zone / ng_zone.dart 178:16
parent.run.dart.fn dart:sdk_internal
运行package:angular / src / core / zone / ng_zone.dart 175:18
[_run] dart:sdk_internal
运行package:angular / src / core / zone / ng_zone.dart 327:22
运行package:angular / src / core / application_ref.dart 140:51
runInZone软件包:angular / src / core / change_detection / host.dart 248:5
运行package:angular / src / core / application_ref.dart 69:23
引导程序包:Angular / src / bootstrap / run.dart 188:16
runApp main.dart 8:3
main main.dart.bootstrap.js 788:12
答案 0 :(得分:0)
Flutter 网页不支持 dart:io
。相反,您需要 dart:html
解决方案
readFile(String path) async{
var request = await HttpRequest.request(path);
var response = request.response;
return response;
}
出于上下文的考虑,我用它来读取 .svg 文件作为字符串。为了您的使用,您需要像这样修改方法:
readFile(String path) async{
var request = await HttpRequest.request(path);
var response = request.response;
var lines = LineSplitter.split(response);
//lines is an SyncIterable<String> but can be converted to a List<String>
return lines;
}