我想将文件写为仅字节而不是字符。
String binaryString = "10110101"
我正在使用
byte mybyte = Byte.parseByte(binaryString,2);
我想将此转换后的字节作为byte
而不是字符写入文件。
我正在使用:
FileOutputStream fos1 = new FileOutputStream(new File("output"));
fos.write(mybyte);
但写完后,当我看到文件时,字节实际上是作为字符写的。
我在转换中做错了吗?如何将其写为字节而不是字符?
编辑:
类似于字符串 101101010111001011111000 (一次取8位然后写入文件):它将转换为“Z9 |”。
答案 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