主要包含解析文件,读具体几行,向后插入行,重新覆盖文件等方法
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;
using System.Collections;
namespace pregnancy_autoupdate.utils
{
class TxtUtil
{
private int _LineNumber;
private string _FilePath;
/// <summary>
/// 文件总行数
/// </summary>
public int LineNumber
{
get{return this._LineNumber;}
}
/// <summary>
/// 文件路径
/// </summary>
public string FilePath
{
get{return this._FilePath;}
}
private ArrayList fileLine;
/// <summary>
/// 读取文件到ArrayList里面去,按照行号排列
/// </summary>
/// <param name="FilePath"></param>
public TxtUtil(string FilePath)
{
this._FilePath = FilePath;
StreamReader sr = new StreamReader(new FileStream(FilePath, FileMode.OpenOrCreate), Encoding.GetEncoding("UTF-8"));
fileLine = new ArrayList();
int i = 0;
while (sr.Peek() > -1) {
fileLine.Insert(i,sr.ReadLine());
i = i + 1;
}
this._LineNumber = i;
sr.Close();
}
/// <summary>
/// 返回某一行的内容
/// </summary>
/// <param name= "LineIndex "> </param>
/// <returns> </returns>
public string ReadLine(int LineIndex)
{
return this.fileLine[LineIndex].ToString();
}
public List<String> readLastLineContent(int lastLineNumber)
{
List<String> contents = new List<String>();
int start = 0;
int end = this._LineNumber - 1;
if (lastLineNumber < this._LineNumber)
{
end = lastLineNumber - 1;
}
for (int i = start; i <= end; ++i)
{
contents.Add(ReadLine(i));
}
return contents;
}
/// <summary>
/// 拿最后几行的数据,如果总行数不够,就拿文件的所有内容
/// </summary>
public List<LogTxt> readLastLineLogTxt(int lastLineNumber)
{
List<LogTxt> logTxts = new List<LogTxt>();
int start = this._LineNumber - 1;
int end = 0;
if (lastLineNumber < this._LineNumber)
{
end = this._LineNumber - lastLineNumber;
}
for (int i = start; i >= end; --i)
{
string content = ReadLine(i);
string[] ss = content.Split('#');
string logDate = ss[0];
string logConent = ss[1];
LogTxt logTxt = new LogTxt();
logTxt.LogDateTime = Convert.ToDateTime(logDate);
logTxt.LogContent = logConent;
logTxts.Add(logTxt);
}
return logTxts;
}
/// <summary>
/// 插入某行到某处
/// </summary>
public void InsertLine(int LineIndex, string LineValue)
{
if (LineIndex <= this._LineNumber)
{
this.fileLine.Insert(LineIndex, LineValue);
}
else
{
this.fileLine.Insert(this._LineNumber, LineValue);
this._LineNumber += 1;
}
}
/// <summary>
/// 插入最后一行数据
/// </summary>
public void InsertLine(string LineValue)
{
this.fileLine.Insert(this._LineNumber, LineValue);
this._LineNumber += 1;
}
/// <summary>
/// 覆盖原文件
/// </summary>
public void Save()
{
StreamWriter sw = new StreamWriter(this._FilePath);
for (int i = 0; i < this.fileLine.Count; i++)
{
sw.WriteLine(this.fileLine[i]);
}
sw.Close();
}
}
}
分享到:
相关推荐
C# 文件工具类 实际项目使用 久经考验 文件读写 复制 删除 创建文件夹 判断文件扩展名等等
C#操作ACCESS数据库,MDB文件读写
C#读写App.config的工具类
C# 读写内存 进程 辅助工具 修改器 一切写单机游戏的修改器、辅助工具、WG的利器。 是属于C#的类文档
打开ini,获取所有段,选择段获得该段的所有key,选择key得到相应value。
C#读取Excel,连接方式读取,文件读取,支持不同版本的excel
C# 程序辅助工具类 // 程序信息// 程序启动器// (暂无)// 程序单开验证// 权限信息// 开机启动项// 数组格式化// 列表内容判断// 列表内容判断(ListTool)// 字节压缩// 人民币格式化// 中文时辰转换// 日期时间...
这是一个基于c#的ini文件读写示例,里面有ini读写的工具类,并且包括了界面操作示例。
【亲测有效】C#读写松下PLC测试程序源码带UI界面 文件类型:c# 主要功能: 这是我常用的工程现场测试PLC的程序,读写PLC单个外部输出Y,读写PLC单个内部继电器R,读写PLC多个外部输出触点等,在线调试过OK,放心使用...
这是 OPCDAAuto.dll 文件. 1. 网上注册写的不规范.应该是下载后在64位系统下粘贴到该目录, C:\Windows\SysWOW64 下,然后在该目录找到 cmd.exe ,右键管理员身份打开,输入 regsvr32 opcdaauto.dll 即可. 2. 在vs里右键...
主要介绍了基于C#实现XML文件读取工具类,涉及C#针对XML文件各节点获取的相关技巧,具有一定参考借鉴价值,需要的朋友可以参考下
操作EXCEL导出数据,将DataTable的数据导出显示为报表。利用OWC11进行作统计图的封装类(条形图、饼图)
NULL 博文链接:https://zxlyecf2.iteye.com/blog/2029272
40. 共用工具类 41. 其他 42. 分词辅助类 43. 分页 44. 加密解密 45. 压缩解压缩 46. 各种验证帮助类 47. 图片 48. 图片操作类 49. 图片验证码 50. 处理多媒体的公共类 51. 处理枚举类 52. 字符串 53. ...
C#读取AD域里用户名或组、Chart图形、cmd、Cookie&Session、CSVHelper、CSV文件转换、DataTable转实体、DBHelper、DecimalUtility及中文大写数字、Excel操作类、FTP操作类、H5-微信、Html操作类、INI文件读写类、IP...
集合了各类常用的C#类库,如文件读写、网络、正则、图片处理、上传下载等等
经常用到的2个C#类,还在完善中。 1.PersonData.MyDataOp.cs :数据库类,已封装了Access和MSSQL的常用...2.PersonData.common.cs:工具类,已封装了INI读写和MD5加密等方法。 直接加入到项目中即可,仅针对初学者。
该辅助工具类为C#操作INI文件的辅助类,源码在某位师傅的基础上完善的来,因为忘记最初的来源了,因此不能提及引用,在此深感遗憾,并对贡献者表示感谢。 using System; using System.Collections; using System....
INI文件格式由节、键、值组成。对INI文件的节、键、值进行读写操作的实际例子。 删除节点/键,读取、写入键、值等工具类函数调用源码。
,RDLC直接打印帮助类,ResourceManager,RMB,SqlHelper,SQL语句拦截器,URL的操作类,VerifyCode,XML操作类,上传下载,二维码操作类,共用工具类,其他,分词辅助类,分页 ,加密解密,压缩解压缩,各种验证帮助类,图片,图片操作...