// 将tasks保存到二进制文件中
public Boolean saveToFile(String file)
{try{if (tasks.Count==0){// 没任务就不存return false;}if (File.Exists(file)){// 原有文件删掉
            File.Delete(file);}// 写文件FileStream writeStream = new FileStream(file, FileMode.Create);BinaryWriter bw = new BinaryWriter(writeStream);foreach (Dld tt in tasks){bw.Write((String)tt.getID());// 以下强制类型转换并非必要,而是为了阅读时辨别类型bw.Write((String)tt.getFilename());bw.Write((String)tt.getUrl());bw.Write((long)tt.getRemoteFileSize());bw.Write((String)tt.getPercent());bw.Write((String)tt.getStatus());bw.Write((String)tt.getType());bw.Flush();}bw.Close();writeStream.Close();return true;}catch(Exception e){throw e;}
}// 从二进制文件中提取tasks
public Boolean loadFromFile(String file)
{try{if (File.Exists(file)==false){// 文件不存在直接返回return false;}// 读文件FileStream readStream = new FileStream(file, FileMode.Open);BinaryReader br = new BinaryReader(readStream);try{while(true){
// 读取过程正好是写入过程的逆序String id = br.ReadString();String filename = br.ReadString();String url = br.ReadString();long remoteFileSize = br.ReadInt64();String percent = br.ReadString();String status = br.ReadString();String type = br.ReadString();// 这个地方要根据类型判断Dld tnew = null;if (type.Equals("http")){tnew = new HttpDld(mainGui, id, filename, url, remoteFileSize, type);}else if (type.Equals("ftp")){tnew = new FtpDld(mainGui, id, filename, url, remoteFileSize, type);}tnew.setStatus(status);tnew.setPercent(percent);tasks.Add(tnew);};}catch(EndOfStreamException ex){// 读完会抛出这个异常,正常过程System.Console.WriteLine("文件" + file + "读取完毕,读取任务" + tasks.Count+"条.");}br.Close();readStream.Close();return true;}catch (Exception e){throw e;}
}

本文转自张昺华-sky博客园博客,原文链接:http://www.cnblogs.com/xiandedanteng/p/7111608.html,如需转载请自行联系原作者

C# 将链表存入二进制文件及读取二进制文件得到链表示例相关推荐

  1. php读取远程二进制文件,php 读取二进制文件

    php 读取二进制文件 class Hex { var $file; var $hex; function __construct($file) { $this->file = $file; } ...

  2. 信息管理代码分析二读取二进制文件数据

    first和end做为全局变量,分别指向链表的头和尾.建立链表的方式也比较简易,从二进制文件数据块中,依次从头到尾读取,每读取一个就建立一个结点. /*基本模型*/ EMP *emp1; while( ...

  3. c语言fread无法存储,【求助】C语言fread读取二进制文件时,读取结果全都是零

    C语言fread读取二进制文件时,读取结果全都是零,编译运行都没问题,但是就是结果显示不对,猜想可能有几个原因: 1. 大小端没处理好,设置了程序判断机器为little endian,但是,身为小白的 ...

  4. MATLAB读取二进制文件------fread

    fread: 读取二进制文件中的数据 语法: A = fread(fileID) A = fread(fileID,sizeA) A = fread(fileID,sizeA,precision) A ...

  5. Matlab读取二进制文件----fread

    fread 读取二进制文件中的数据 全页折叠 语法 A = fread(fileID) A = fread(fileID,sizeA) A = fread(fileID,sizeA,precision ...

  6. 在QT中结构体快速从二进制文件中读取数据

    这可能是一个比较基础的问题,但由于刚开始学习c++,但是对我来说,结构体快速从二进制文件读取数据,给我解决了很大的问题,这里我把方法写出来,和有需要的人分享一下,高手看到了请多包涵. 我的二进制文件是 ...

  7. c语言fread读取错误,【求助】C语言fread读取二进制文件时,读取结果全都是零

    C语言fread读取二进制文件时,读取结果全都是零,编译运行都没问题,但是就是结果显示不对,猜想可能有几个原因: 1. 大小端没处理好,设置了程序判断机器为little endian,但是,身为小白的 ...

  8. python按字节读取文件_Python读取二进制文件

    实际项目中经常遇到读取二进制问题,Python下读取二进制文件一般用Python的文件打开读写相关函数和struct. 1.获取文件名filename,可用对话框,也可以直接手写 2.打开文件,这里中 ...

  9. python读取二进制文件_如何用python读取二进制文件?

    我发现用Python读取二进制文件特别困难.你能帮我一把吗?我需要读取这个文件,在Fortran 90中,该文件很容易被int*4 n_particles, n_groups real*4 group ...

最新文章

  1. 【Git】git使用:新建仓库、管理分支、冲突解决
  2. 基于3D模型的MaskRCNN的训练数据生成
  3. springboot报错---No identifier specified for entity: com.example.demo.entity.User
  4. Java学习笔记_数组
  5. 无法打开物理文件 操作系统错误 5:拒绝访问 SQL Sever
  6. matlab 实验数据 传递函数,《传递函数MATLAB实验》.ppt
  7. nodejs调用函数和模块
  8. 让人头皮发麻的KMP的next函数 困扰我三四天后终于解决了
  9. SAP License:GR与IR
  10. 把MSDE 2000 打包的自己的安装程序说明
  11. vue-axios配置token,上传图片
  12. 蚂蚁金服 CEO 突然辞职!去向很意外。。。
  13. 一键查询全部单号物流是否签收
  14. 亚马逊美国买家账号注册流程
  15. 京东登录界面html css,css制作京东登录页面 css样式,京东店面装修怎么写CSS样式?...
  16. 学习笔记(8)之VelocityTracker
  17. flexPaper制作在线文库阅读器思路
  18. linux分区修复命令行,Linux技巧:使用Fsck命令修复损坏的分区
  19. Redis——发布/订阅
  20. 在IDEA开发一个自动输入法切换插件

热门文章

  1. 解压大于4g的文件_4G显卡“到期”,ETH2.0即将到来,以太坊矿工何去何从?
  2. Python的Lock对象和Condition对象对比
  3. diy无感无刷电机霍尔安装_霍尔传感器常见的有那几个类别
  4. latex 跳转标签_LaTeX技巧933: 在macOS上配置VSCode与Skim的LaTeX正反跳转
  5. 2019 live tex 发行版_TeX Live 2019安装指南
  6. linux path原理,面试题:Linux中的环境变量PATH
  7. mac java tomcat_mac平台tomcat部署web项目
  8. python实现web服务器_python实现web服务器
  9. idea引入本地jar包及打包
  10. promotion failed 和 Concurrent Mode Failure的区别