Java 如何将位集创建的字节写入文件?
我正在创建一个哈夫曼压缩程序(java),我希望能够将我的编码位写入文件。e、 g“65”:“110” 首先,我试图理解如何使用位集编写带有FileOutPutStream的字节 我尝试过类似的方法,但没有成功:Java 如何将位集创建的字节写入文件?,java,fileoutputstream,bitset,Java,Fileoutputstream,Bitset,我正在创建一个哈夫曼压缩程序(java),我希望能够将我的编码位写入文件。e、 g“65”:“110” 首先,我试图理解如何使用位集编写带有FileOutPutStream的字节 我尝试过类似的方法,但没有成功: public class Test { public static void main(String args[]){ //constructor BitSet bs1 = new BitSet(8); // setting the bitset to
public class Test {
public static void main(String args[]){
//constructor
BitSet bs1 = new BitSet(8);
// setting the bitset to 01000001
bs1.set(1);
bs1.set(7);
byte[] b = bs1.toByteArray();
/**
* FileOutputStream to write the byte to file.
* */
try {
FileOutputStream out = new FileOutputStream("test.txt");
out.write(b);
}catch (IOException e){
e.printStackTrace();
}
我正在尝试将ascii“A”写入文本文件。
我认为问题在于FileOutputStream.write()将字节数组中的b.length字节写入该文件输出流
我的字节不是8位长,而是16位。字节数组有
长度
在我的机器上是1
,并且write(byte[])
不会做任何意外的事情。你能仔细检查你的观察结果吗?顺便说一句:你可能只想使用字节
和位运算符,而不是位集
是的,正如你所说,它的长度是一。它是大小为16的位集bs1。我想那没关系。我希望我的textfile test.txt包含ascii字符“A”,但用IDE打开textfile时,它只会说:“加载到错误的内编码“UTF-8”。如何使用字节进行逐位操作?@giorgigaThanks。如果我想将字节写入文本文件,并且在打开文本文件时,它会转换为“A”“。如何使用我的代码?我知道ascii中的“A”是65,单位是:01000001@乔治加