Неправильный символ в файле 0xFF - JAVA - PullRequest
0 голосов
/ 24 февраля 2019

У меня есть функция преобразования двоичных значений в символы и записи этих символов в файл.

Двоичное значение: 11100111 11111111 11111010 11100111

    String input = "11100111111111111111101011100111";

    StringBuilder sb = new StringBuilder(); 

    Arrays.stream( 
        input.split("(?<=\\G.{8})") 
    ).forEach(s -> 
        sb.append((char) Integer.parseInt(s, 2)) 
    );

    String output = sb.toString();

По первому, третьемуи четвертый 8-битный преобразование в порядке, но вторым 8-битным является неправильным.Выход -1.Я понимаю, зачем это делать, но я не знаю, как исправить мой код для правильной записи символов в файл.

Проблема заключается в следующем: неверный символ в файле.

На моемКонсоль вывода Eclipse: в файле: з? Ъз

После записи в файл FileUtils.writeStringToFile(new File("c:\\Users\\FileNameToWrite.txt"); я получил это в файле з?ъз.Это неправильно, потому что?знак (Hex: 3F, Binary: 0011 1111).Мне нужно правильное символьное значение двоичного значения (1111 1111) в файле.

Спасибо!

...