У меня есть текстовый файл со следующим текстом внутри:
[username][0]
Я открыл файл с помощью StreamWriter, и я хочу изменить 0
на 1
с помощью метода StreamWriter.Write
. Как я могу это сделать?
Если вы знаете точную позицию байта символа (ов), который вы хотите переписать, вы можете сделать что-то вроде этого:
using (var writer = new StreamWriter(filePath))
{
writer.BaseStream.Seek(bytePos, SeekOrigin.Begin);
writer.Write('1');
}
Если вы не знаете точную позицию байта, вы можете сделать что-то вроде этого:
using (var file = new FileStream(filePath, FileMode.Open))
using (var reader = new StreamReader(file))
using (var writer = new StreamWriter(file))
{
var openBracketCount = 0;
// Keep reading characters until the second open bracket is found.
do
{
var ch = Convert.ToChar(reader.Read());
if (ch == '[')
{
openBracketCount++;
}
} while (openBracketCount < 2);
writer.Write('1');
}
StreamWriter
, особенно если вы можете использовать только.Write
... Можно ли перезаписать весь файл?StreamWriter
? ИспользуйтеFileStream
найдите текст, напишите в этой позиции, затем закройте поток.