Dart core library
Dart IO
class File & class Directory(两个均是继承自 abstract FileSystemEntity)
- FIle
- Directory
- 仅仅针对文件夹(即使按照规定Directory也是特殊文件)
File
FileRead
-
read file async
| void main() async { |
| File fileByRead = File("write.txt"); |
| if (!await fileByRead.exists()) { |
| fileByRead.createSync(); |
| stderr.write("该文件不存在,已创建"); |
| } |
| |
| |
| Stream<List<int>> inputStream = fileByRead.openRead(); |
| |
| |
| |
| |
| Stream<String> lines = |
| (utf8.decoder.bind(inputStream)).transform(const LineSplitter()); |
| var t1 = 0; |
| try { |
| await for (final _ in lines) { |
| print('t1 ${t1++}'); |
| } |
| print('file is now closed'); |
| } catch (e) { |
| print(e); |
| } |
| |
| |
| Stream<List<int>> inputStream2 = fileByRead.openRead(); |
| var t2 = 0; |
| |
| inputStream2.listen((data) { |
| print('t2: ${t2++}'); |
| }); |
| |
| print('${t1}, ${t2}'); |
| } |
FileWrite
| void main() async { |
| File fileByWrite = File('write.txt'); |
| if (await fileByWrite.exists() == false) { |
| await fileByWrite.create(); |
| stderr.write('文件不存在,已经创建'); |
| } |
| |
| |
| IOSink ioSink = fileByWrite.openWrite(mode: FileMode.write); |
| ioSink.write('io_write'); |
| |
| |
| await ioSink.flush(); |
| await ioSink.close(); |
| print('closed'); |
| |
| |
| sleep(const Duration(seconds: 10)); |
| return; |
| } |
Directory
| void main() async { |
| Directory directory = Directory('F:\\language'); |
| if (directory.existsSync()) { |
| |
| List<FileSystemEntity> fFileList = directory.listSync(recursive: true); |
| print(fFileList.length); |
| } |
| } |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步