我正在尝试使用Dart的IO库打开并写入文件。
我有此代码:
File file = File("text.txt");
RandomAccessFile raf = file.openSync();
raf.writeStringSync("A string!");
现在,执行此操作时,我在控制台中收到以下错误:
(OS Error: Access is denied., errno = 5)
因此该文件未打开以供写入,我在这里寻找open method,并且不知道如何使用open
或openSync
来获取{{1} }我可以写信。
它说我需要使用write constant来做到这一点,但是却不知道怎么做?
如果我尝试创建FileMode并将其作为参数添加到RandomAccessFile
方法中,则会收到一条错误消息:
open
因此Error: Too many positional arguments: 0 allowed, but 1 found.
和open
方法不能接受任何参数,一个人将如何使用openSync
和FileMode
方法打开准备写入的文件?因此,我需要获取处于写入模式的open
吗?并且默认情况下,它仅在读取模式下?我不尝试使用RandomAccessFile
或writeString
,我知道这些方法存在,但我对使用返回的writeStringSync
和open
方法如何完成感兴趣openSync
!
更新:
答案 0 :(得分:1)
您遇到此错误:
错误:位置参数过多:允许0个,但找到1个。
因为openSync方法没有位置参数,而只有一个命名参数(mode
)。
因此,要修复您的代码,必须添加它:
RandomAccessFile raf = file.openSync(mode: FileMode.append); //Or whatever mode you'd to apply
话虽如此,但是还有其他几种写入文件的方法,其中大多数都在文档中列出:
writeString或writeStringSync,如果您只需要向文件写入一次,我建议使用这些。
openWrite,它返回可以写入以便写入文件的Stream
。
(所有这些方法都有一个名为FileMode mode
的参数)