Считыватель потока файлов

#c# #filestream

#c# #filestream

Вопрос:

В чем моя ошибка, поскольку я не могу найти пример в Интернете, который соответствует тому, что я делаю, или, по крайней мере, я не уверен, соответствует ли он?

Проблема, с которой я сталкиваюсь, заключается в том, что ему не нравится

 hexIn = fileStream.Read()
  

Код:

 FileStream fileStream = new FileStream(fileDirectory, FileMode.Open, FileAccess.Read);
String s;

try
{
    for (int i = 0; (hexIn = fileStream.Read() != -1; i  )
    {
        s = hexIn.ToString("X2");
        //The rest of the code
    }
}
finally
{
    fileStream.Close();
}
  

Комментарии:

1. «Ему это не нравится» — не очень подробное описание. С какой именно проблемой вы столкнулись?

Ответ №1:

Отсутствует «)». . Попробуйте:

 using (StreamReader sr = new StreamReader("TestFile.txt"))
{
    String line;

    while ((line = sr.ReadLine()) != null)
    {
        s=...
    }
}
  

Ответ №2:

Есть несколько вещей, которые я бы сделал по-другому.

Во-первых, вы должны использовать FileStream с using . Но на самом деле, если вы просто пытаетесь прочитать строки в текстовом файле, StreamReader было бы нормально:

 try
{
    using (StreamReader sr = new StreamReader("TestFile.txt"))
    {
        String line;

        while ((line = sr.ReadLine()) != null)
        {
            // convert line to Hex and then format with .ToString("X2")
        }
    }
}
catch
{
    // handle error
}
  

Если вы пытаетесь преобразовать свой весь входной файл в шестнадцатеричное значение, сообщите нам об этом. Пока я просто буду предполагать построчно.