如何打开文件进行写入?

时间:2019-04-01 10:05:58

标签: dart dart-io

我正在尝试使用Dart的IO库打开并写入文件。

我有此代码:

File file = File("text.txt");
RandomAccessFile raf = file.openSync();
raf.writeStringSync("A string!");

现在,执行此操作时,我在控制台中收到以下错误:

(OS Error: Access is denied., errno = 5)

因此该文件未打开以供写入,我在这里寻找open method,并且不知道如何使用openopenSync来获取{{1} }我可以写信。

它说我需要使用write constant来做到这一点,但是却不知道怎么做? 如果我尝试创建FileMode并将其作为参数添加到RandomAccessFile方法中,则会收到一条错误消息:

open

因此Error: Too many positional arguments: 0 allowed, but 1 found. open方法不能接受任何参数,一个人将如何使用openSyncFileMode方法打开准备写入的文件?因此,我需要获取处于写入模式的open吗?并且默认情况下,它仅在读取模式下?我不尝试使用RandomAccessFilewriteString,我知道这些方法存在,但我对使用返回的writeStringSyncopen方法如何完成感兴趣openSync

更新:

1 个答案:

答案 0 :(得分:1)

您遇到此错误:

  

错误:位置参数过多:允许0个,但找到1个。

因为openSync方法没有位置参数,而只有一个命名参数(mode)。 因此,要修复您的代码,必须添加它:

RandomAccessFile raf = file.openSync(mode: FileMode.append); //Or whatever mode you'd to apply

话虽如此,但是还有其他几种写入文件的方法,其中大多数都在文档中列出:

(所有这些方法都有一个名为FileMode mode的参数)