首页 > 其他分享 >Dart core library

Dart core library

时间:2024-02-02 23:33:38浏览次数:28  
标签:core Stream await library Dart write Directory File print

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();
    
        /// 1. Stream<List<int>> 绑定到 utf8 解码器上面得到对应的 Stream<String>
        /// 2. 将得到的 Stream<String> 通过 Stream 的方法 transform 在行分割器下面进行分割
        /// 这样实现了边读边处理
        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;
        /// stream等的操作只要没有 async 和 await 关键字就是异步的
        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');

  /// ioSink.add(List<int> data) # 用来写二进制文件
  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()) {
    /// directory.list() // 返回一个 Stream<FileSystemEntity>
    List<FileSystemEntity> fFileList = directory.listSync(recursive: true);
    print(fFileList.length);
  }
}

标签:core,Stream,await,library,Dart,write,Directory,File,print
From: https://www.cnblogs.com/sqmw/p/18004209

相关文章

  • ASP.NET Core中JsonResult和ObjectResult的用法
    ​  在ASP.NETCore中,JsonResult和ObjectResult是两种用于返回数据的ActionResult类型,它们在控制器中用来生成HTTP响应。选择使用JsonResult还是ObjectResult取决于具体需求。如只需要返回JSON格式的数据,JsonResult是一个简单且直接的选择。如果API需要支持多种响应格式,则Obje......
  • 使用C# asp.net core 同步数据库
    代码片段:文末附链接。usingDataSync.Core;usingFurion.Logging.Extensions;usingMicrosoft.Data.SqlClient;usingMicrosoft.Extensions.Logging;usingSystem.Data;namespaceDataSync.Application.DataSync.Services{publicclassDataSyncServices:IDataSyn......
  • MPI Library for .Net
    今天整点.Net。因为在某个业余小项目中,需要尽可能榨干硬件性能,以满足尽可能大的可访问数据范围。发现在.Net中并行计算一般使用System.Threading.Task.Parallel,但实际开发中,似乎只能处理到1G左右的数据就会溢出,机器整个状态似乎只是在摸鱼。并且拥有多台物理机器的时候并不能共......
  • rCore_Lab9
    本章任务让应用能便捷地访问外设侏罗猎龙进一步增加了多种设备驱动程序的侏罗盗龙操作系统–DeviceOS的总体结构如下图所示设备驱动程序CPU访问外设的方式在RISC-V环境中,把外设相关的控制寄存器映射为某特定的内存区域(即MMIO映射方式),然后CPU通过读写这些特殊区域来访问外......
  • vmcore分析
    https://blog.csdn.net/Ivan804638781/article/details/111679583系统产生异常时,触发Kdump机制,启动捕获内核,用以对生产内核下的内存进行收集和转存。Kdump用于对内存镜像的转储,它不但可以转储内存镜像到本地硬盘,还可以将内存镜像通过NFS,SSH等协议转储到不同机器的设备上。本文是......
  • 利用 ASP.NET Core 开发单机应用
    前言现在是分布式微服务开发的时代,除了小工具和游戏之类刚需本地运行的程序已经很少见到纯单机应用。现在流行的Web应用由于物理隔离天然形成了分布式架构,核心业务由服务器运行,边缘业务由客户端运行。对于消费终端应用,为了应付庞大的流量,服务端本身也要进行再切分以满足多实例和......
  • .Net Core项目部署到Azure Function
    创建AzureFunction项目在VisualStudio中,选择“新建项目”,然后选择“AzureFunctions”模板。编写Function函数代码publicstaticclassFunction1{[FunctionName("Function1")]publicstaticasyncTask<IActionResult>Run([HttpTr......
  • vue-core-video-player的使用
    介绍vue-core-video-player是一款基于vue.js的视频播放器组件安装与使用安装cnpminstallvue-core-video-player-S使用第一步:main.js引入importVueCoreVideoPlayerfrom'vue-core-video-player'//默认是英文Vue.use(VueCoreVideoPlayer)//或者Vue.use(VueCoreV......
  • .Net Core3.1 升级到8.0(3.1升级到更高版本)
    NETCore3.1已经用了很长一段时间,其实在2022年的年底微软已经不提供支持了,后面的一个 LTS 版本.NET6也会在2024年11月终止支持,所以直接升级到.NET8是最好的选择。微软官方推出了升级工具:UpgradeAssistant,链接地址如下:https://dotnet.microsoft.com/zh-cn/plat......
  • 行业认可!Coremail入选CCSIP2023中国网络安全行业全景册(第六版)
    2024年1月24日,FreeBuf咨询正式发布《CCSIP(ChinaCyberSecurityIndustryPanorama)2023中国网络安全行业全景册(第六版)》,旨在为企业安全建设及产品选型提供参考。Coremail凭借多年的专业技术积累和产品创新能力,入选该全景册的“邮件安全”、“恶意内容检测”、“钓鱼检测”、“数据......