Чтение бинарного файла

Рейтинг: 0Ответов: 1Опубликовано: 17.10.2014

Читаю байты из бинарного файла. При считывании преобразоваю байт 0 в символ 0, байт 1 в символ 1. Но в этой строке

OP[i] = (char)((f1[i] == 0) ? '0' : '1');

возникает ошибка, компилятор говорит, что char Не может быть преобразован в String. Не понимаю, что я сделал не так. Помогите найти ошибку.

String OPER = "00100011101";
        byte[] bytes = new byte[OPER.length()];
        for (int i = 0; i < OPER.length(); i++) {
            bytes[i] = (byte) ((OPER.charAt(i) == '0') ? 0 : 1);
            //System.out.println(bytes[i]);
        }
        try (FileOutputStream fos = new FileOutputStream(new File("someFile.dat"))) {
            fos.write(bytes);
            fos.close();
        }

        FileInputStream f1 = new FileInputStream("someFile.dat");
        int size = f1.available();
        String[] OP = new String[size];
        System.out.println("Total Available Bytes: " + size);
        for (int i = 0; i < size; i++) {
            OP[i] = (char)((f1[i] == 0) ? '0' : '1');
            System.out.print( f1.read());
        }

Ответы

▲ 2

UPDATED

            FileInputStream f1 = new FileInputStream("someFile.dat");
            int size = f1.available();
            char[] OP = new char[size];
            byte[] singleByte = new byte[1];
            System.out.println("Total Available Bytes: " + size);
            for (int i = 0; i < size; i++) {
            int readed = fi.read(singleByte)
                OP[i] = (char)((singleByte[0] == 0) ? '0' : '1');
                System.out.print( singleByte[0]);
            }
            String result = new String(OP);