| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 817 人关注过本帖
标题:求教一个JAVA编码问题~~
只看楼主 加入收藏
Rion
Rank: 1
等 级:新手上路
帖 子:13
专家分:0
注 册:2008-9-1
收藏
 问题点数:0 回复次数:2 
求教一个JAVA编码问题~~
用JAVA编写出一个压缩程序 使用LZ78算法

现在的问题是 我已经得到压缩以后的数据,然后进行编码写进另一个文件
压缩后的数据格式是一个int型和一个Sting型的字母 int 型的参数在LZ78压缩算法里表示索引,String型的参数表示nextChar,这两组数据分别背存进两个Vector
例如 源文件是:aababc 一共6个字节
在编译器里把两个Vector打印出来的格式应该是 0a1b2c
问题是如果把 0a1b2c 当做STRING型写进压缩文件里去的话也是6个字节,如果分开用二进制来写的话 0是0只占1bit,1是1占1bit,2是10只占2bit,然后a b c各 8bits 所以加起来还不到4个字节

当编码完以后,我希望从压缩文件读数据时,分辨哪个是int型的,哪个string型的 然后把他们再赋给两个Vector 最后进行解压!
我刚用DataOutputStream写数据
DataInputStream  dos= 文件名

for(int i=0; i <IndexVec.size();i++)
{
  dos.writeInt((Integer)IndexVec.elementAt(i));//这个向量里存的是INT型的
  dos.WriteBytes((String)NextCharVec.elementAt(i));//这个存STRING型的
}
最后压缩文件越写越大,而且不知道怎么分别读出 int型参数和String型的参数

经过压缩以后会得到2组数据的格式是:很多个变长的int型的数,和很多个一个字节的String型的串也就是只一个字母;例如

0  a
1  b
2  c
2  b
.  .
.  .
.  .

19  g
这两组数据 第一组是变长的int型,第二组是只有一个字母的String型的我把他们分别存在两向量IndexVec和NextCharVec里面
如果把他们全部按String型的写进文件的话 文件会大于压缩之前的文件,所以我想用一个办法把他们按二进制写进压缩文件里,然后解压的时候分别读出int型和String型的数据,最后再根据这些数据进行解压文件
搜索更多相关主题的帖子: JAVA 编码 
2008-11-06 00:15
freish
Rank: 6Rank: 6
等 级:贵宾
威 望:23
帖 子:1223
专家分:437
注 册:2007-6-1
收藏
得分:0 
FileImageOutputStream 类写入一个byte的数据到文件可以只占一个字节的空间,再想压缩我想不出其他的已有类了
2008-11-06 10:27
chenxiaofei
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2008-11-5
收藏
得分:0 
可是如果int 的值大于127的话就会越界的,例如如果是int型的是2500话,怎么办,请高人指导!!
2008-11-06 23:36
快速回复:求教一个JAVA编码问题~~
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.016026 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved