2013-02-21 2 views
2

У меня есть текстовый файл (в нем есть контент), и я хочу добавить в него текст. Это мой код:Как связать строку с существующим файлом?

File outputFile=new File('hello.out'); 
     outputFile.createSync(); 
     List<String> readLines=files[i].readAsLinesSync(Encoding.UTF_8); 
     for(int j=0;j<readLines.length;j++) 
     { 

     outputFile.writeAsStringSync(readLines[j], FileMode.APPEND); } 

По какой-то причине Dart поставить желтую линию под «FileMode.APPEND», и он говорит, что это «лишний аргумент». Однако эта ссылка http://api.dartlang.org/docs/releases/latest/dart_io/File.html утверждает, что она является необязательной.

ответ

1

FileMode является необязательным параметром named, поэтому вы должны указать его имя («режим»), когда вы его вызываете. Чтобы решить проблему, измените это:

outputFile.writeAsStringSync(readLines[j], FileMode.APPEND); 

к этому:

outputFile.writeAsStringSync(readLines[j], mode: FileMode.APPEND); 
+0

Спасибо, это сработало :) Я новичок в дартс, и мне интересно, что такое именованный параметр? – Cheshie

+0

@ Cheshie подробнее об этом: http://www.dartlang.org/docs/dart-up-and-running/contents/ch02.html#functions-optional-parameters –

2

Этот код действительно все, что вам нужно:

import 'dart:io'; 

main() { 
    new File('test.txt').writeAsStringSync('append some more content', mode: FileMode.APPEND); 
} 

Обратите внимание, что режим файла является именованный параметр, поэтому вам необходимо указать его как mode:.

И как всегда, использовать асинхронную версию, если она не имеет значения (АОН инструментов, инициализация единовременную при пуске и т.д.)

Смежные вопросы