Чтение файлового потока

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

У меня проблема в том, что мне не нравится

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();
}

person Simon    schedule 19.05.2011    source источник
comment
Это не нравится, это не очень подробное описание. Какая именно у вас проблема?   -  person John Saunders    schedule 19.05.2011


Ответы (2)


Отсутствующий ")". . Пытаться:

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

    while ((line = sr.ReadLine()) != null)
    {
        s=...
    }
}
person soandos    schedule 19.05.2011

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

Во-первых, вы должны использовать 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
}

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

person Cᴏʀʏ    schedule 19.05.2011