ColinOL

A Small Website

用户工具

站点工具


侧边栏

首页

知识树

存档

联系我

网站地图


推荐栏目


抱歉,您没有权限增加页面
home

ColinOL Home

C# 快速提取文本文件最后一行数据

提取文本最后一行数据的方法

/// <summary>
/// 提取文本最后一行数据
/// </summary>
/// <param name="fs">文件流</param>
/// <returns>最后一行数据</returns>
private string GetLastLine(FileStream fs)
{
    int seekLength = (int)(fs.Length < 1024 ? fs.Length : 1024);  // 这里需要根据自己的数据长度进行调整,也可写成动态获取,可自己实现
    byte[] buffer = new byte[seekLength];
    fs.Seek(-buffer.Length, SeekOrigin.End);
    fs.Read(buffer, 0, buffer.Length);
    string multLine = System.Text.Encoding.UTF8.GetString(buffer);
    string[] lines = multLine.Split(new string[] { "\\n" }, StringSplitOptions.RemoveEmptyEntries);
    string line = lines[lines.Length - 1];
 
    return line;
}

使用方法

using (FileStream fs = new FileStream(fileName, FileMode.Open, FileAccess.Read, FileShare.ReadWrite))
using (StreamReader sr = new StreamReader(fs))
{
    // 读取首行
    string line = sr.ReadLine();
    SDataAircraft data = JsonWrapper.DeserializeObject<SDataAircraft>(line);
 
    if (data == null)
    {
        sr.Close();
        fs.Close();
        continue;
    }
 
    info.StartTime = Convert.ToDateTime(data.timeStamp);
 
    // 读取末行                    
    line = GetLastLine(fs);
 
    //...
 
    sr.Close();
    fs.Close();
}

另外,在同时读写同一个文件时,需要设置文件流的FileShare.ReadWrite:

写文件:

using (FileStream fs = new FileStream(fileName, FileMode.Append, FileAccess.Write, FileShare.ReadWrite))
using (StreamWriter sw = new StreamWriter(fs))
{
    sw.WriteLine(data);
    sw.Close();
    fs.Close();
}

读文件:

using (FileStream fs = new FileStream(fileName, FileMode.Open, FileAccess.Read, FileShare.ReadWrite))
using (StreamReader sr = new StreamReader(fs))
{
    // 读取首行
    string line = sr.ReadLine();
    //...
 
    sr.Close();
    fs.Close();
}

参考:

2019/10/24 10:34 · colin

Windows 自带命令行查看文件哈希值

查看文件的哈希hash值(MD5、SHA1、SHA256)

命令如下

certutil -hashfile D:\1.exe MD5
certutil -hashfile D:\1.exe SHA1
certutil -hashfile D:\1.exe SHA256
2019/10/24 10:26 · colin

shell脚本与运行

.sh 脚本

一个典型的sh脚本示例:

hello.sh
#!/bin/bash
 
ls -all

运行 .sh

以运行 hello.sh 为例:

一、直接./加上文件名.sh,如运行hello.sh为./hello.sh【hello.sh必须有x权限】

chmod u+x hello.sh
./hello.sh

二、直接sh 加上文件名.sh,如运行hello.sh为sh hello.sh【hello.sh可以没有x权限】

sh hello.sh

三、绝对路径执行 .sh

这样

/home/hello.sh

或者

./home/hello.sh

或者

sh /home/hello.sh

应用场景

2019/09/26 23:08 · colin
home.txt · 最后更改: 2019/10/06 11:49 由 colin