c#中文件的写入与读取
public List<Card> cards = new List<Card>();//用于存放所有的Card信息
/// <summary>
/// 添加一个Card信息,并保存在本地
/// </summary>
/// <returns></returns>
public bool AddCard()
{
bool mark = false;//对是否写入做个标记
Console.Clear();
Console.WriteLine("请输入你要添加的记录:");
Console.WriteLine("如:公司 姓名 职称 手机 电话 传真 电子邮箱 邮政编码 家庭住 址");
Card person = new Card();
try
{
Console.WriteLine("请输入公司名称:");
string comname = Console.ReadLine();
person.Companyname = comname;
Console.WriteLine("请输入名片联系人:");
string username1 = Console.ReadLine();
person.Username = username1;
Console.WriteLine("请输入职位:");
string position1 = Console.ReadLine();
person.Position = position1;
Console.WriteLine("请输入电话号码");
person.AddTel();
Console.WriteLine("请输入地址:");
string address1 = Console.ReadLine();
person.Address = address1;
Console.WriteLine("请输入邮箱地址:");
string email1 = Console.ReadLine();
person.Email = email1;
Console.WriteLine("请输入传真号码:");
string fax1 = Console.ReadLine();
person.Fax = fax1;
Console.WriteLine("请输入公司邮编:");
string prc1 = Console.ReadLine();
person.Prc = prc1;
Console.WriteLine("请输入网址:");
string wwwadress1 = Console.ReadLine();
person.Wwwadress = wwwadress1;
cards.Add(person);
string[] ToAdd = new string[cards.Count];//用于将存放所有Card的信息,便 于使用 File.WriteAllLines()方法写入到本地
for (int a = 0; a < cards.Count; a++)//把CardL类型的一条记录转化成string类
//型的数组以方便写入。
{
ToAdd [a] = cards[a].ChangeToString();
}
//把所有Card信息写入到本地
File.WriteAllLines(@"" + curr + "/cards.txt", ToAdd );
Console.WriteLine("添加成功!\n{0}", person.ToString());
mark = true;
}
catch(Exception e)
{
Console.WriteLine(e.Message);
System.Threading.Thread.Sleep(1000);
AddCard();
}
return mark ;
}
/// 以字符串的形式按照固定格式返回Card信息,所有数据之间用逗号分开
/// </summary>
/// <returns></returns>
public string ChangeToString()
{
string result = "";
result += "," + this.Fax + "," + this.Email + "," + this.Prc + "," + this.Address;
}//其实我们也可以把中间的","换成用ASCII码对应的特殊字符。防止用户输入与我们进行分隔时的字符相同。
/// <summary>
/// 通过关键字key获得Card的详细信息,只返回所有Card中所有含有关键字的记录
/// </summary>
/// <param name="key"></param>
/// <returns></returns>
public string GetCard(string key)
{
string result = "";
//利用循环遍历cards数组,并将包含关键字的对象用字符串输出
for (int a = 0; a < cards.Count; a++)
{
if (cards[a].ToString().Contains(key))
{
result += cards[a].ToString() + "\n"; ;
}
}
//遍历数组后没有找到目标数组
if (result == "")
{
result = "查找的结果不存在";
}
return result;
}
在我先前做搜索的时候并没有想到用contains去查找用户输入的关键字,实际上这种contains包含关键字更符合用户的需求,输入一个字可以返回所有的数据,方便用户的检索。
{
List<string> holder = new List<string>();
string [] Mark = new char[3] {"/t"," ","," };
foreach (string s in zifu.Split(Mark))
{
//将zifu用空格和/t分成的子字符串放入到holder中
holder.Add(s);
}
try //把分隔出的string类型的对象转化成card类型以填入cards的集合
{
this.Companyname = holder[0];
this.UserName = holder[1];
this.Position = holder[2];
this.Telrphone = holder[3];
this.Wwwaddress = holder[4];
this.Fax = holder[5];
this.Email = holder[6];
this.Prc = holder[7];
this.Address = holder[8];
}
当我们读取string里面的数据时需要先把cards集合里面的数据清空,然后用File.ReadAllLines()读取,由于读取后的类型为数组需要转化为Card类型。我们就调用card的构造函数把string类型转化为card类型以填入cards的集合。
cards.Clear();//清空cards的集合
//遍历目标数组中的行,并用行中的数据实例化Card
foreach (string s in File.ReadAllLines(@"" + curr + "/cards.txt"))//File.ReadAllLines()读取目标文件中的所有行
{
//将实例化的Card填充到数组中
cards.Add(new Card(s));
}
总的来说在文件的写入与读取的时候注意类型之间的转化。我们在读入时需要string类型的集合区保存它。通过split()方法去过滤得到string类型的数组。再把数组对应的索引值赋给card类型对应的字段,以实现类型之间的转化。
转载于:https://blog.51cto.com/zhjjzhjj/359073
c#中文件的写入与读取相关推荐
- VC++中对文件的写入和读取
VC++中对文件的写入和读取 本文介绍两种方法对文件进行读取和写入操作:1.采用fstream类:2.采用CStdioFile类. CStdioFile继承自CFile,一个CStdioFile对象代 ...
- python如何读写文件-python文件的写入和读取
1.txt,xls,doc等文件的使用 f=open("filename","w") 打开一个用于写入的文件,要写入内容时使用f.write("内容& ...
- php写excel文件_利用PHPExcel实现Excel文件的写入和读取
作为一个原本的Java党,用过PHP才知道,原来对于Excel文件的写入和读取原来可以这么简单! 利用PHP实现对于Excel的读取,主要借助于PHPExcel插件来完成. PHPExcel下载地址: ...
- PHP文件的写入与读取基础
1.PHP文件的写入与读取基础 先看图片与代码: 具体代码文本: <?php /* 关于用到的函数文章会讲到*/ $myfile = "../uploads/file.txt" ...
- python读取txt文件写入-python txt文件的写入和读取
1.文件的打开 使用open () 函数 打开文件.他有两个参数,文件路径或文件名和文件的打开方式. "r" 只读模式,不能编辑和删除文件内容. "w" 写入模 ...
- python中按照文件夹中文件的排列顺序读取文件内容,python文件显示和windows目录显示一致
原创 python中按照文件夹中文件的排列顺序读取文件内容 2018-12-06 11:49:18 途径北海道 阅读数 3891 更多 分类专栏: python 版权声明:本文为博主原创文章,遵循 C ...
- [转]VC++中对文件的写入和读取
本文转自:http://blog.csdn.net/fanghb_1984/article/details/7425705 本文介绍两种方法对文件进行读取和写入操作:1.采用fstream类:2.采用 ...
- python读取txt文件-python txt文件的写入和读取
1.文件的打开 使用open () 函数 打开文件.他有两个参数,文件路径或文件名和文件的打开方式. "r" 只读模式,不能编辑和删除文件内容. "w" 写入模 ...
- XML文件的写入和读取(解析)基于DOM4J工具
这两天做了个天气的小应用,需要用到百度的天气api,获取到的信息是一个xml文档. 所以就从网上查了一下相关的知识,就是关于怎么去解析出来xml文件的信息. 先放一个我自己写的例子,加了点注释,贴这里 ...
最新文章
- 大型网站架构系列:缓存在分布式系统中的应用(二)
- pyspark rdd 数据持久化
- oracle查看被锁的表以及解锁表
- matlab 二维高斯滤波 傅里叶_光电图像处理 | 傅里叶变换(二)
- ejb构建_如何使用单例EJB和MBean构建和清除参考数据缓存
- 重读经典(点云深度学习开山之作):《Deep learning on point clouds for 3D scene understanding》(持续更新中)
- Redux学习(一)——Redux的使用过程
- 论文浅尝 | 基于知识库的神经网络问题生成方法
- google 地图 V3 运动轨迹
- 定制简单的404和403页面
- GitHub上下载源代码的方法
- 凯文米特尼克-《欺骗的艺术》[完整中文版][DOC][PDF]
- linux tar命令 打包压缩
- 华为ENSP的Stelnet、直连、串口连接、telnet连接登录
- Java随意输入字符串,如果含有$将该字符及之前一个字符的去掉
- android 辅助功能(无障碍) AccessibilityService 实战入门详解
- JavaScript使用百度地图API获取当前位置信息
- 开发人员如何在面试中介绍自己的项目经历
- 项目管理之关键链法VS关键路径法
- 不同直径的圆转一圈后,滚过的距离相同?谈一下亚里士多德车轮悖论与无穷小