Java-файл для двоичного преобразования - PullRequest
3 голосов
/ 19 августа 2011

Как я могу конвертировать файл в двоичный файл? Мне просто нужно это для моего проекта. Мне нужно зашифровать файл его двоичными файлами.

Ответы [ 3 ]

13 голосов
/ 19 августа 2011

Если вы имеете в виду доступ к форме ACTUAL BINARY, прочитайте файл и преобразуйте каждый байт в двоичное представление ...

EDIT:

Вот некоторый код для преобразования байта в строку с битами:

String getBits(byte b)
{
    String result = "";
    for(int i = 0; i < 8; i++)
        result += (b & (1 << i)) == 0 ? "0" : "1";
    return result;
}

Если вы имеете в виду доступ к байтам в файле, просто используйте следующий код (вы можете использовать это и для первого случая):

File file = new File("filename.bin");
byte[] fileData = new byte[file.length()];
FileInputStream in = new FileInputStream(file);
in.read(fileData):
in.close();
// now fileData contains the bytes of the file

Чтобы использовать эти два фрагмента кода, теперь вы можете перебирать каждый байт и создавать объект String (в 8 раз больше исходного размера файла !!) с битами:

String content = "";
for(byte b : fileData)
    content += getBits(b);
// content now contains your bits.
0 голосов
/ 19 августа 2011
        try {
            StringBuilder sb = new StringBuilder();
            File file = new File("C:/log.txt");
            DataInputStream input = new DataInputStream( new FileInputStream( file ) );
            try {
                while( true ) {
                    sb.append( Integer.toBinaryString( input.readByte() ) );
                }
            } catch( EOFException eof ) {
            } catch( IOException e ) {
                e.printStackTrace();
            }
            System.out.println(sb.toString());
        } catch( FileNotFoundException e2 ) {
            e2.printStackTrace();
        }
0 голосов
/ 19 августа 2011

С FileInputStream вы можете получить байты из файла

Из JavaDoc:

FileInputStream получает входные байты из файла в файловой системе.Доступность файлов зависит от среды хоста.

FileInputStream предназначен для чтения потоков необработанных байтов, таких как данные изображения.Для чтения потоков символов рассмотрите возможность использования FileReader.

...