2013-04-08 44 views
1

此代码尝试打开现有文件,然后通过openWrite向其中添加文本。如何在打开之后敲定写入/关闭写入

import 'dart:io'; 

main() { 
    File inFile = new File('/tmp/foo.txt'); 
    String currentText = inFile.readAsStringSync(); 
    var writer = inFile.openWrite(); 
    writer.write(currentText); 
    writer.write("\nOne more line"); 
    writer.close(); 
    exit(0); 
} 

完成后文件为空。如果退出(0)不在那里,它工作正常。 应该进行哪些调用以确保在退出之前写入所有写入操作?

回答

4

由于写入程序是异步的,因此您需要在写入和关闭流时完成通知时使用写入程序的done属性。例如:

import 'dart:io'; 

main() { 
    File inFile = new File('/tmp/foo.txt'); 
    String currentText = inFile.readAsStringSync(); 
    var writer = inFile.openWrite(); 
    writer.write(currentText); 
    writer.write("\nOne more line"); 
    writer.close(); 
    writer.done.then((_) { 
    exit(0); 
    }); 
} 
相关问题