Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/356.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何将位集创建的字节写入文件?_Java_Fileoutputstream_Bitset - Fatal编程技术网

Java 如何将位集创建的字节写入文件?

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

我正在创建一个哈夫曼压缩程序(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 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@乔治加