2014-10-21 4 views
1

I сохраненных байт в строке в JavaЭкспорт строки байт в файл без кодирующей

String header ="00110011000000011001000000000001001011000000000100000010000000000000000000000000000000000000000000000000000000000000000000000000"; 

Теперь я хочу написать эту строку в файл, но экспорт, что в качестве последовательности бит и не кодируются как текст. Запись в файл выглядит следующим образом:

BufferedWriter writer = new BufferedWriter (new FileWriter("test.epd")); 
writer.write(header); 

Как я могу это сделать (строка в этой проге будет больше -> вокруг 8kB)

+0

возможно дубликат [Binary к тексту в Java] (http://stackoverflow.com/questions/4211705/binary-to-text-in-java) – ProgramFOX

+0

возможно дубликат [Преобразование двоичной строки в массив байтов ] (http://stackoverflow.com/questions/17727310/convert-binary-string-to-byte-array) – fvu

+0

@fvu Но его строка имеет длину 16 бит, поэтому он может использовать переменную для хранения строки. В моей в случае, если переменная не будет достаточно длинной! Как я сказал, мне нужно около 8kB – valentin

ответ

1

Я хотел бы использовать BinaryCodec из Обще APACHE commons-codec.

String headerb = "00110011000000011001000000000001001011000000000100000010000000000000000000000000000000000000000000000000000000000000000000000000"; 
BinaryCodec codec = new BinaryCodec(); 
//I have no idea why this method is not static. 
//you may use BinaryCodec.fromAscii(ascii.toCharArray()) instead 
byte[] bval = codec.toByteArray(headerb); 
File file = new File("test.epd"); 
Files.write(bval, file); 

//Test that when the file is read, we retrieve the same string 
byte[] byteArray = Files.toByteArray(file); 
String asciiString = BinaryCodec.toAsciiString(byteArray); 
System.out.println(asciiString); 
+0

Вы только что спасли мой день !!! большое спасибо – valentin

Смежные вопросы