有一01字符串,要将它写入文件,0就当二进制的0,1就当二进制的1。我用outputstream的write方法逐个写入后发现0写的是0x00,1写的0x01。怎样将1就写为二进制的1呢,0就是二进制的0呢?
将一串“01”字符串写入二进制的文件,即每个"0"和"1"分别只占用1 bit的空间,而不是当作普通字符那样占用1 Byte。谢谢!
outputstream的write方法要求传入的时byte[]数组,如果你的01字串是String类型的的话,需要将其转换成byte[],具体办法可以看下面的例子:
public static void main( String[] args )您好!我是想写01的比特序列到一个二进制文件中去,目的不是写01字符串。谢谢您的回答!
追答public void write()我不知道你要输出的文件格式是什么,如果是dat类型的二进制文件,可以用上面的方法输出,另外如果是要对象到二进制文件,可以让对象实现Serializable接口,然后用ObjectOutputStream将对象输出
您好!请问i%8=1,2,3,6时报错
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException:
怎么解决?
发现问题了:您的text = "10101010010001100111001";字符个数不是8的倍数。修改text为8的倍数就ok~不过不是8的倍数就不行了。
额。不过你要记住一点是。世界上所有的操作系统都只支持8bit,也就是一字节存储。不存在只存储1bit的情况。你要是想要8的倍数也很简单,但是要在两个方面做选择,要么在string后面补0,要么在存储的最后一字节尾部做一下补0或者补1之类的,不过相当于在string后面补0. 额。希望对你有帮助
追问谢谢您的耐心解答~
追答不客气。呵呵
您好!我需要将一串“01”的数据写入文件,即每个"0"和"1"分别只占用1 bit的空间,而不是当作普通字符那样占用1 Byte。
有不懂欢迎追问
追问您好!
这是创建了一个大小100的随机的01序列写入文本文件。请问如何将01的序列当比特序列写入二进制文档?
谢谢您的回答!