在写入文件时将二进制字符串转换为字节而不是字符

时间:2014-01-22 14:04:22

标签: java java-io

我想将文件写为仅字节而不是字符。

String binaryString = "10110101"

我正在使用

byte mybyte  = Byte.parseByte(binaryString,2);

我想将此转换后的字节作为byte而不是字符写入文件。

我正在使用:

FileOutputStream fos1 = new FileOutputStream(new File("output"));
fos.write(mybyte);

但写完后,当我看到文件时,字节实际上是作为字符写的。

我在转换中做错了吗?如何将其写为字节而不是字符

编辑:

类似于字符串 101101010111001011111000 (一次取8位然后写入文件):它将转换为“Z9 |”。

1 个答案:

答案 0 :(得分:1)

您实际上是将二进制数据10110101写入文件,但是当您在文本编辑器中打开该文件时,它将显示为一个字符。

如果您想编写代表给定数字的文本(例如以十进制形式),请使用Writer:

FileOutputStream fos1 = new FileOutputStream(new File("output"));
OutputStreamWriter w = new OutputStreamWriter(fos1, StandardCharsets.UTF_8);
w.write(""+mybyte); // ""+mybyte creates a string with the decimal representation of mybyte
相关问题