主要包含解析文件,读具体几行,向后插入行,重新覆盖文件等方法
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#读写配置文件的技巧,开发者能够更好地适应应用程序的需求变化,同时保持代码的灵活性和可维护性。提供的源代码是一个很好的起点,可以帮助初学者理解这一过程,并为他们自己的项目提供灵感。
C#读写App.config的工具类
以上就是关于C#读写INI配置文件的一些核心知识点,通过理解这些,你可以创建自己的INI文件操作类,或者理解和使用提供的"ClassLibrary"压缩包中的类。记住,编写此类工具时,应注重代码的可读性、可维护性和错误处理...
为了在C#中操作ini文件,我们可以创建一个工具类,如`LToolIni`,这个类可以封装各种ini文件操作方法。以下是一些核心方法的实现概览: 1. **读取ini文件**: - `GetAllSections()`:返回ini文件中的所有节。 - `...
File工具类可能包含了读写文件、目录操作、文件搜索等功能,简化了文件系统交互的过程。 8. **Win.Util**: 由于提到了"Win.Util",我们可以推测这可能是针对Windows平台的特定工具类,可能包含了一些与Windows API...
标题中的"C#工具类库类库 包含所有的常用工具类"暗示了这是一个集合,包含了多种实用工具类,能够极大地提升开发效率。这些工具类涵盖了从文件操作到网络通信的多个领域。 首先,FTP操作类是用于与FTP服务器进行...
6. **文件工具**: 文件工具类提供了对文件系统的操作,例如创建、删除、移动、复制文件,读写文件内容,以及检查文件是否存在等。这些方法能够帮助简化文件操作,提高代码的健壮性。 7. **加密工具**: 加密工具类...
总的来说,C#结合`netCDF4.dll`库为.NET开发者提供了方便的工具来读写netCDF文件,这使得处理科学数据变得更加高效和便捷。通过熟练掌握这些技术,你可以轻松地在C#项目中管理和分析大量的多维度数据。
下面将详细阐述如何使用C#进行Access数据库的读写操作。 首先,为了在C#中连接到Access数据库,我们需要引用System.Data.OleDb命名空间,这个命名空间包含了与OLE DB相关的类,如OleDbConnection、OleDbCommand和...
3. **文件读写操作**:在C#中,可以使用`System.IO`命名空间下的类如`StreamReader`和`StreamWriter`进行文件读写。读取DXF文件时,需要解析文件中的ASCII数据并转换为内部表示;写入时,则需要将内部数据结构转换回...
在C#.NET中,这样的工具类往往以静态类的形式存在,例如`System.IO`中的`File`和`Directory`类,它们提供了读写文件、操作目录的方法。 此资源包包含的“全部源码”意味着开发者可以直接查看和修改这些工具类的内部...
在处理各种数据文件时,C#提供了丰富的类库和方法,使得对不同格式的文件进行读写操作变得简单易行。本篇文章将详细探讨如何在C#中对dat文件进行读写操作,以及与CSV或txt文本文件的交互。 1. **C# CSV或txt文本...
在C#编程语言中,读写文件是一项基本且...综上所述,C#提供了强大而灵活的工具来处理文件读写,并结合字符串操作,能够满足各种数据处理需求。通过熟练掌握这些基础技能,开发者可以构建高效、稳定的文件系统应用程序。
在C#编程中,工具类(Utility Class)是一种常见的设计模式,它封装了一些常用的功能,以便在项目中方便地重复使用。"MJ.Util"、"MJ.Util.Extension"和"MJ.Util.Model"这三个文件名暗示了这个压缩包可能包含了C#中的...
总结来说,Netdxf库为.NET开发者提供了强大的工具,使他们能够在C#环境中方便地进行DXF文件的读写。通过深入理解和应用这个库,开发者可以创建出功能丰富的CAD应用程序,满足各种定制化的图形数据处理需求。
在C#中,没有内置的类或方法直接支持INI文件操作,但我们可以利用`System.IO.File`类和其他辅助方法来实现读写功能。以下是一些关键步骤: 1. **读取INI文件**:使用`File.ReadAllText`方法读取整个文件内容,然后...
总之,C#提供了强大且易用的文件操作工具,通过`System.IO.File`和`System.IO.FileInfo`类,开发者能够方便地完成文件的读写、创建、删除、复制和移动等一系列操作,从而满足各种应用程序的需求。在实际编程中,结合...
本文将深入探讨如何利用封装好的DotNet库在C#环境中读写SHP文件,以及相关的关键知识点。 首先,SHP文件是由一系列相互关联的文件组成,包括.shp(几何数据)、.dbf(属性数据)和可能的.shx(索引)等。`shapelib`...
"C#基类工具类"是为开发者提供的一组通用功能的集合,通常包含一系列静态方法或者基类,以简化常见的编程任务。这些工具类可以极大地提高代码的复用性和开发效率。下面我们将详细探讨这些知识点。 1. **IO流处理**...