C# 将链表存入二进制文件及读取二进制文件得到链表示例
// 将tasks保存到二进制文件中
public Boolean saveToFile(String file)
{
try
{
)
{
// 没任务就不存
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;
}
}
C# 将链表存入二进制文件及读取二进制文件得到链表示例的更多相关文章
- 信息管理代码分析<二>读取二进制文件数据
first和end做为全局变量,分别指向链表的头和尾.建立链表的方式也比较简易,从二进制文件数据块中,依次从头到尾读取,每读取一个就建立一个结点. /*基本模型*/ EMP *emp1; while( ...
- 用 C# 读取二进制文件
当想到所有文件都转换为 XML时,确实是一件好事.但是,这并非事实.仍旧还有大量的文件格式不是XML,甚至也不是ASCII.二进制文件仍然在网络中传播,储存在磁盘上,在应用程序之间传递.相比之下,在处 ...
- 获取博客积分排名,存入数据库,读取数据进行绘图(python,selenium,matplotlib)
该脚本的目的:获取博客的排名和积分,将抓取时间,排名,积分存入数据库,然后把最近的积分和排名信息进行绘图,查看积分或者排名的变化情况. 整个脚本的流程:是利用python3来编写,利用selnium获 ...
- C语言实现数据机构链表的基本操作(从键盘输入生成链表、读取数组生成链表)
利用头插法实现逆置 下面简单介绍一下,算法思想结合图示看 算法思想:"删除"头结点与链表其他结点的原有联系(即将头结点的指针置空),再逐个插入逆置链表的表头(即"头插&q ...
- c++单链表冒泡排序(交换结点),链表增删改查,运算符重载
#include <iostream> #include <stdlib.h> #include <time.h> #include <fstream> ...
- java使用poi读取ppt文件和poi读取excel、word示例
java使用poi读取ppt文件和poi读取excel.word示例 http://www.jb51.net/article/48092.htm
- 牛客网:将两个单调递增的链表合并为一个单调递增的链表-Python实现-两种方法讲解
方法一和方法二的执行效率,可以大致的计算时间复杂度加以对比,方法一优于方法二 1. 方法一: 思路: 1. 新创建一个链表节点头,假设这里就叫 head3: 2. 因为另外两个链表都为单调递增,所 ...
- LeetCode初级算法--链表02:合并两个有序链表
LeetCode初级算法--链表02:合并两个有序链表 搜索微信公众号:'AI-ming3526'或者'计算机视觉这件小事' 获取更多算法.机器学习干货 csdn:https://blog.csdn. ...
- [LC]83题 Remove Duplicates from Sorted List(删除排序链表中的重复元素)(链表)
①英文题目 Given a sorted linked list, delete all duplicates such that each element appear only once. Exa ...
随机推荐
- oracle中xhost报错
一.命令找不到 xhost:command not found yum whatprovides "*/xhost" Loaded plugins: product-id, sec ...
- hosts文件位置
windows C:\WINDOWS\system32\drivers\etc mac /etc/hosts 修改hosts文件会遇到无法保存的问题,解法方法参考下文 http://mtoou.inf ...
- SOAP UI(ReadyAPI)学习——第一步:资源帖
SoapUI的参数说明:http://www.soapui.org/Working-with-soapUI/preferences.html 进一步了解可以阅读:http://www.51testin ...
- poj3728The merchant
The merchant Time Limit: 3000MS Memory Limit: 65536K Total Submissions: 4800 Accepted: 1666 Desc ...
- Linux服务器的安装
命令:1. mount /mnt/cdrom/回车 安装光驱2. cd /mnt/cdrom/ 进入光驱目录3. cd /mnt/cdrom/RedHat/RPMS/ 进入RPMS目录4. rpm - ...
- hdu 2888 二维RMQ
Check Corners Time Limit: 2000/10000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)To ...
- javap的基本用法
参考:http://www.cnblogs.com/beautiful-code/p/6424977.html javap是JDK自带的反汇编器,可以查看java编译器为我们生成的字节码.通过它,我们 ...
- Android 动态隐藏显示导航栏,状态栏
Talk is cheap, show me the code. --Linus Torvalds Okay, here: 一.导航栏: [java] view plain copy private ...
- Linux 之 Memcached
Memcached的安装使用 参考教程:[千峰教育] 环境:CentOS 6.8 一.简介: memcached作为高速运行的分布式缓存服务器,具有以下的特点. · 协议简单 · 基于libevent ...
- 解决win2008下IIS7的HTTP500错误
造成500错误常见原因有:ASP语法出错.ACCESS数据库连接语句出错.文件引用与包含路径出错.使用了服务器不支持的组件如FSO等.另外,对于win2008的IIS默认不显示详细出错信息的问题以下就 ...