读取打开文件中的最后一行
本文关键字:一行 最后 文件 读取 | 更新日期: 2023-09-27 17:57:51
我对这一切都很陌生,但我觉得我离完成这项工作很近了,我只需要一点帮助!我想创建一个DLL,它可以读取并返回在另一个应用程序中打开的文件中的最后一行。这就是我的代码的样子,我只是不知道在while语句中应该放什么。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.IO;
namespace SharedAccess
{
public class ReadShare {
static void Main(string path) {
FileStream stream = File.Open(path, FileMode.Open, FileAccess.Read, FileShare.ReadWrite);
StreamReader reader = new StreamReader(stream);
while (!reader.EndOfStream)
{
//What goes here?
}
}
}
}
要读取最后一行,
var lastLine = File.ReadLines("YourFileName").Last();
如果是大型文件
public static String ReadLastLine(string path)
{
return ReadLastLine(path, Encoding.ASCII, "'n");
}
public static String ReadLastLine(string path, Encoding encoding, string newline)
{
int charsize = encoding.GetByteCount("'n");
byte[] buffer = encoding.GetBytes(newline);
using (FileStream stream = new FileStream(path, FileMode.Open))
{
long endpos = stream.Length / charsize;
for (long pos = charsize; pos < endpos; pos += charsize)
{
stream.Seek(-pos, SeekOrigin.End);
stream.Read(buffer, 0, buffer.Length);
if (encoding.GetString(buffer) == newline)
{
buffer = new byte[stream.Length - stream.Position];
stream.Read(buffer, 0, buffer.Length);
return encoding.GetString(buffer);
}
}
}
return null;
}
我指的是这里,如何只读取大文本文件的最后一行
文件ReadLines应该适合您。
var value = File.ReadLines("yourFile.txt").Last();