获取/删除文件的最后一个字符而不加载到内存中

Den*_*man 0 c#

如何获取文件中的最后一个字符,如果是某个字符,删除它而不将整个文件加载到内存中?

这就是我到目前为止所拥有的.

using (var fileStream = new FileStream("file.txt", FileMode.Open, FileAccess.ReadWrite)){
  fileStream.Seek(-1, SeekOrigin.End);
  if (Convert.ToChar(fileStream.ReadByte()) == ']')
  {
    // Here to come deleting the character
  }
Run Code Online (Sandbox Code Playgroud)

Dou*_*las 6

如果您的文本文件编码为ASCII或UTF-8(其中]将被存储为一个字节),那么你可以只用一个字节修剪你的文件:

if (fileStream.ReadByte() == ']')
    fileStream.SetLength(fileStream.Length - 1);
Run Code Online (Sandbox Code Playgroud)