Всем доброго времени суток. Мне нужно вставить байты в поток, но дело в том, что если в потоке есть, допустим строка "123456789", то если я записываю в него строку "абв" со второго байта, получается "12абв6789", а мне нужно "12абв3456789". Есть ли способ вставить в поток байты?
public int WriteData(int offset, string data)
{
try
{
byte[] bytes = new byte[data.Length];
bytes = Encoding.UTF8.GetBytes(data);
fileStream.Seek(offset, SeekOrigin.Begin);
fileStream.Write(bytes, 0, bytes.Length);
}
catch (Exception ex)
{
return 1;
}
return 0;
}
В моём случае я использовал вместо потока строку string. Файл не предполагается размером более 500Кб, поэтому пока годится. В случае если понадобятся изменения - скорее всего прибегну к помощи временного файла. Если кому интересно, вот код:
private static Dictionary<string, string> writersData = new Dictionary<string, string>();
public string WriteData(string cName, int offset, string data)
{
try
{
writersData[cName] = writersData[cName].Insert(offset, data);
return OperationResult.success;
}
catch (Exception e)
{
return e.Message;
}
}
public string RemoveData(string cName, int offset, int count)
{
try
{
writersData[cName] = writersData[cName].Remove(offset, count);
return OperationResult.success;
}
catch (Exception e)
{
return e.Message;
}
}
Всем спасибо!
Продвижение своими сайтами как стратегия роста и независимости