Чтение и преобразование двоичного файла в char-файл с использованием Java - PullRequest
0 голосов
/ 06 мая 2019

Я пытаюсь прочитать двоичный файл с файлом шорткода, который можно найти здесь .

Метод, который я использую для печати содержимого этого файла:

public void read3RegularGraphs( String pathFile ) throws IOException {

        InputStream  reader = new FileInputStream(pathFile);

        byte [] fileBytes = Files.readAllBytes(new File(pathFile).toPath());
        char singleChar;
        for(byte b : fileBytes) {
            singleChar = (char) b;
            System.out.print(singleChar);
        }
    }

К сожалению, у меня неправильный формат вывода, вместо символов используются символы.

Как преобразовать двоичное содержимое в символьный формат.

Спасибо

1 Ответ

0 голосов
/ 06 мая 2019

Вам необходимо передать Charset, чтобы использовать декодирование. Char и byte - это две разные вещи

List<String> stringList = Files.readAllLines(new File(pathFile).toPath(), Charset.forName("UTF-8"));

Когда вы преобразуете между Char, Strings и байтовыми массивами, явно объявляете Charset

byte[] byteArray= stringTest.getBytes(Charset.forName("UTF-8"));
String stringTest = new String(byteArray, Charset.forName("UTF-8"));
...