Для этого кода ниже процедура довольно проста, поскольку вы уже знаете, что последний символ в вашем файле - это]. Таким образом, все, что вам нужно сделать, это прочитать последний символ файла, и если это символ], то вы получили этот файл. Если это произойдет, вы усекаете последний байт из файла и добавляете текст в этот файл. Затем добавьте символ], чтобы сохранить формат. Обратите внимание, что это для кодировки ASCII, если ваш последний символ - это нечто большее, чем байт, тогда вам придется немного исправить код.
using System;
using System.IO;
using System.Text;
public class FSSeek
{
public static void Main()
{
string fileName = "test.txt";
char lastChar = ']';
string toBeAppend = "d\ne\n";
using (FileStream fs = new FileStream(fileName, FileMode.Open, FileAccess.ReadWrite))
{
fs.Seek(-1, SeekOrigin.End);
if ( Convert.ToChar(fs.ReadByte()) == lastChar ){
fs.SetLength(fs.Length - 1);
fs.Write(Encoding.ASCII.GetBytes(toBeAppend));
fs.WriteByte(Convert.ToByte(lastChar));
}
}
}
}
test.txt content:
[
a
b
c
]