Я получаю текстовый файл из мэйнфрейма, и иногда в середину текстовых строк вводится 0x0D.
Программист предыдущих версий создал метод, используя класс FileStream.Этот метод работает нормально, но на прохождение всего файла уходит около 30 минут.
Я подумал о том, чтобы передать необходимые строки текста (около 25 строк) в метод, чтобы уменьшить время обработки.
Я работал с классом MemoryStream, но у меня возникла проблема, когда он не находит управляющий код 0x0D
.
Вот текущий метод FileStream:
private void ReplaceFileStream(string strInputFile)
{
FileStream fileStream = new FileStream(strInputFile, FileMode.Open, FileAccess.ReadWrite);
byte filebyte;
while (fileStream.Position < fileStream.Length)
{
filebyte = (byte)fileStream.ReadByte();
if (filebyte == 0x0D)
{
filebyte = 0x20;
fileStream.Position = fileStream.Position - 1;
fileStream.WriteByte(filebyte);
}
}
fileStream.Close();
}
и вот метод MemoryStream:
private void ReplaceMemoryStream(string strInputLine)
{
byte[] byteArray = Encoding.ASCII.GetBytes(strInputLine);
MemoryStream fileStream = new MemoryStream(byteArray);
byte filebyte;
while (fileStream.Position < fileStream.Length)
{
filebyte = (byte)fileStream.ReadByte();
if (filebyte == 0x0D)
{
filebyte = 0x20;
fileStream.Position = fileStream.Position - 1;
fileStream.WriteByte(filebyte);
}
}
fileStream.Close();
}
Поскольку я не использовал класс MemoryStream до этого, я не настолько знаком с ним.Любые советы или идеи?