社区
Java SE
帖子详情
文件写入时能不能按bit而不是byte?
iamross
2004-04-17 01:16:51
比如说我要把一串bit流写成一个文件
多谢啦,只要能实现,绝对给分!!!
...全文
130
13
打赏
收藏
文件写入时能不能按bit而不是byte?
比如说我要把一串bit流写成一个文件 多谢啦,只要能实现,绝对给分!!!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
13 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
Last_Dodo
2004-04-21
打赏
举报
回复
Be aware that if your input is from network you better do big/little endian convertion to preserve the bit order. Otherwise your "10001101" (8D) could end up "10110001" (B1).
iamross
2004-04-17
打赏
举报
回复
这么说把,这个问题可以转变成这样
比如说,我有字符串“10001101”,然后我想把16进制8D存入文件
应该怎么实现?
iamross
2004-04-17
打赏
举报
回复
大疯狂,我试了,还是不行
比如我输出
d0.writeBoolean(true);
d0.writeBoolean(false);
d0.writeBoolean(false);
d0.writeBoolean(false);
d0.writeBoolean(false);
d0.writeBoolean(false);
d0.writeBoolean(false);
d0.writeBoolean(false);
得到8个字节,分别为16进制的01,00,00,00,00,00,00,00
而我想得到的是二进制的10000000,即16进制的80
dlxu
2004-04-17
打赏
举报
回复
用2进制流来写,不要用字符形式写就行了
用DataOutputStream这个Filter来控制输出
sxgz
2004-04-17
打赏
举报
回复
同意楼上的。
bigcrazy
2004-04-17
打赏
举报
回复
你可以试试:
用DataOutputStream包装FileOutputStream,利用writeBoolean()方法,对给定的BIT串,如果是1,writeBoolean(true),如果是0,writeBoolean(false)。最后看看是什么样的。
另外:halfpro(学好Java)说的不对,READER/WRITER是针对字符的,INPUTSTREAM/OUTSTREAM是针对字节的。
halfpro
2004-04-17
打赏
举报
回复
Reader 与Writer是基于字节流的;InputStream和OutputStream是二进制流
XIHSHI
2004-04-17
打赏
举报
回复
up
sean_gao
2004-04-17
打赏
举报
回复
为什么要这样,能说说理由么?楼主。
Last_Dodo
2004-04-17
打赏
举报
回复
楼上的意思是把byte中的每个bit转成‘0’、‘1’字符再写入文件?按此方法,如果bit流是n bits结果文件的大小是n乘8。
楼主的意思不是很清楚,文件总是以byte为单位的所以你不可能一个bit一个bit地写(所以楼上是将bit以字符的形式转成byte)。你的意思是按bit流顺序而不是按byte顺序写,因为bit流顺序和byte里的bit顺序不同?
iamross
2004-04-17
打赏
举报
回复
我解决了,谢谢大家
made_in_
2004-04-17
打赏
举报
回复
当然可以。
将一个byte转换成二进制序列,然后变成字符串再写入文件就成了。
读取的时候做相反的转换。
sean_gao
2004-04-17
打赏
举报
回复
这样啊。那你直接写byte不就可以了,出来的文件表面上看是byte流,实际上就是你要的8D啊。你试试RandomAccessFile和DataOnputStream看。
字节、字、
bit
、
byte
的关系
字 word 字节
byte
位
bit
,来自英文
bit
,音译为“比特”,表示二进制位。 字长是指字的长度 1字=2字节(1 word = 2
byte
) 1字节=8位(1
byte
= 8
bit
) 一个字的字长为16 一个字节的字长是8 bps 是
bit
s per second 的简称。一般数据机及网络通讯的传输速率都是以「bps」为单位。如56Kbps、100.0Mbps 等等。 B...
C# 读写
Bit
值和
Byte
值
C# 读写
Bit
值和
Byte
值
如何在python中将二进制字符串当作
bit
直接
写入
二进制
文件
中
如何在python中将二进制字符串当作
bit
直接
写入
二进制
文件
中
java获取一个
byte
字节里的某个
bit
值或连续的几个
bit
值
在java里,一个
byte
占8位 (
bit
0-bti7 ),那我们怎么去获取其中的某个
bit
值或连续的几个
bit
值呢? 获取单个
bit
值: //b为传入的字节,i为第几位(范围0-7),如要获取
bit
0,则i=0 public int get
Bit
(
byte
b,int i) { int
bit
= (int)((b>>i) & 0x1); return...
1
bit
和1
byte
_字节、字、
bit
、
byte
的关系
字 word字节
byte
位
bit
字长是指字的长度1字节=8位(1
byte
= 8
bit
)1字=2字节(1 word = 2
byte
)一个字节的字长是8一个字的字长为16bps 是
bit
s per second 的简称。一般数据机及网络通讯的传输速率都是以「bps」为单位。如56Kbps、100.0Mbps 等等。Bps即是
Byte
per second 的简称。而...
Java SE
62,623
社区成员
307,257
社区内容
发帖
与我相关
我的任务
Java SE
Java 2 Standard Edition
复制链接
扫一扫
分享
社区描述
Java 2 Standard Edition
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章