Konwersja z bajtu [] na ciąg

Mam następujący kod:

using (BinaryReader br = new BinaryReader(
       File.Open(FILE_PATH, FileMode.Open, FileAccess.ReadWrite)))
{
    int pos = 0;
    int length = (int) br.BaseStream.Length;

    while (pos < length)
    {
        b[pos] = br.ReadByte();
        pos++;
    }

    pos = 0;
    while (pos < length)
    {
        Console.WriteLine(Convert.ToString(b[pos]));
        pos++;
    }
}

ŚCIEŻKA_PLIKU to ciąg stały, który zawiera ścieżkę do odczytywanego pliku binarnego. Plik binarny jest mieszaniną liczb całkowitych i znaków. Liczby całkowite są 1 bajty każdy i każdy znak jest zapisywany w pliku jako 2 bajty.

Na przykład plik ma następujące dane:

1 HELLO JAK SIĘ JESTEŚCIE POTRZEBUJESZ WIELKIEGO // i tak dalej

Uwaga: każda liczba całkowita jest powiązana z ciągiem znaków po nim. Tak więc 1 wiąże się z „HELLO HOW ARE YOU”, a 45 z „YOU ARE LOOKING GREAT” i tak dalej.

Teraz zapisywany jest plik binarny (nie wiem dlaczego, ale muszę z tym żyć), tak że „1” zajmie tylko 1 bajt, a „H” (i inne znaki) po 2 bajty.

Oto, co zawiera plik:

0100480045.. i tak dalej Heres, podział:

01 to pierwszy bajt dla liczby całkowitej 1 0048 to 2 bajty dla „H” (H to 48 w Hex) 0045 to 2 bajty dla „E” (E = 0x45)

i tak dalej ... Chcę, aby moja konsola drukowała z tego pliku czytelny dla człowieka format: że chcę, aby wydrukował „1 CZEŚĆ JAK JESTEŚ TY”, a następnie „45 JESTEŚ WYGLĄDAJĄCY WIELKI” i tak dalej ...

Czy to, co robię, jest prawidłowe? Czy istnieje łatwiejszy / skuteczniejszy sposób? Moja linia Console.WriteLine (Convert.ToString (b [pos])); nic nie robi, ale drukuje wartość całkowitą, a nie rzeczywisty znak, który chcę. Jest OK dla liczb całkowitych w pliku, ale jak mogę odczytać znaki?

Każda pomoc byłaby bardzo mile widziana. Dzięki

questionAnswers(3)

yourAnswerToTheQuestion