现在有一个dat文件是以二进制存储的。里面的内容格式我现在知道。我想用java来解析出来。

现在有一个dat文件是以二进制存储的。里面的内容格式我现在知道。我想用java来解析出来.我现在已经将dat文件读取到byte数组中了。但是转换成String时是乱码。请... 现在有一个dat文件是以二进制存储的。里面的内容格式我现在知道。我想用java来解析出来.我现在已经将dat文件读取到byte数组中了。但是转换成String时是乱码。请各位大神帮忙!代码如下:
public void parseOneFile(File file) {
try {
/**
* 读取文件流
*/
InputStream inputStream = new FileInputStream(file);
/**
* 缓冲流
*/
BufferedInputStream bufferedInputStream = new BufferedInputStream(
inputStream);
/**
* 字节数组
*/
byte[] filebyte = null;
/**
* 读入文件的字节长度
*/
long filelength = file.length();
if (filelength > Integer.MAX_VALUE) {
logger.info("the file is too large!");
return;
}
/**
* 初始化
*/
filebyte = new byte[(int) filelength];
try {
/**
* 读取的起始值
*/
int offset = 0;
/**
* 读取的字节数
*/
int numRead = 0;
while (offset < filebyte.length
&& (numRead = bufferedInputStream.read(filebyte,
offset, filebyte.length - offset)) >= 0) {
offset += numRead;
}
if (offset < filebyte.length) {
throw new IOException(
"Could not completely read file "
+ file.getName());
}
String temp=new String(filebyte,"GB2312");
System.out.println(temp);

} catch (IOException e) {
logger.error("read file error!", e);
}
} catch (FileNotFoundException e) {
logger.error("file is not found!", e);
}
}
展开
 我来答
非我即仙
2010-11-28 · TA获得超过568个赞
知道小有建树答主
回答量:303
采纳率:0%
帮助的人:401万
展开全部
换UTF-8试试。
要不就是你解析有误。dat可能不是一个文本文件。
你这种读byte的方法恐怕有误
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
thy777
2010-11-28 · TA获得超过125个赞
知道答主
回答量:71
采纳率:0%
帮助的人:34.6万
展开全部
确认一下dat文件的文字编码是不是"GB2312",试一下"utf-8"啥的成不成
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
飞翔的菜菜
2010-11-28 · TA获得超过2227个赞
知道大有可为答主
回答量:2941
采纳率:50%
帮助的人:1304万
展开全部
哎,好复杂,但愿有人帮你啊。我是学C的
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式