Java读取二进制文件 乱码 求大神帮忙
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java读取二进制文件 乱码 求大神帮忙相关的知识,希望对你有一定的参考价值。
File file = new File("D:/Users/yao/Desktop/test/2.rec");
if(file.exists())
try
FileInputStream in = new FileInputStream(file);
DataInputStream dis=new DataInputStream(in);
byte[] itemBuf = new byte[20];
//市场编码
dis.read(itemBuf, 0, 8);
String marketID =new String(itemBuf,0,8);
//市场名称
dis.read(itemBuf, 0, 20);//read方法读取一定长度之后,被读取的数据就从流中去掉了,所以下次读取仍然从 0开始
String marketName =new String(itemBuf,0,20);
//上一交易日日期
dis.read(itemBuf, 0, 8);
String lastTradingDay = new String(itemBuf,0,8);
//当前交易日日期
dis.read(itemBuf, 0, 8);
String curTradingDay = new String(itemBuf,0,8);
//交易状态
dis.read(itemBuf, 0, 1);
String marketStatus = new String(itemBuf,0,1);
//交易时段数
// short tradePeriodNum = dis.readShort();
System.out.println("市场代码:"+ marketID);
System.out.println("市场名称:"+ marketName);
System.out.println("上一交易日日期:"+ lastTradingDay);
System.out.println("当前交易日日期:"+ curTradingDay);
System.out.println("当前交易日日期:"+ curTradingDay);
System.out.println("交易状态:"+ marketStatus);
// System.out.println("交易时段数:"+ tradePeriodNum);
catch (IOException e)
// TODO Auto-generated catch block
e.printStackTrace();
finally
//close
改为
String marketID =new String(itemBuf,0,8,Charset.forName("UTF-8"));
其他行类似
如果你的二进制文件是其他编码的,就用相应的编码替换UTF-8 参考技术B 把2.rec文件放到网盘,告诉我地址,我帮你解决。 参考技术C 你确定编码方式是一样的吗,Java采用的是Unicode,
java新手在mysql数据库读取mysql.properties文件出错,求大神帮忙
第二张图片可能有点小,麻烦大神帮忙看下,下面是报的错!谢谢
好的,谢谢
本回答被提问者和网友采纳 参考技术B nstruction. As she 参考技术C InputStream is =MyConnection.class.getClassLoader().getResourceAsStream("文件名称");你少点了属性 参考技术D 上CSDN网站去查,95%的问题都能找到完美的答案。 第5个回答 2018-01-05 什么错贴出来,或者代码发出来
以上是关于Java读取二进制文件 乱码 求大神帮忙的主要内容,如果未能解决你的问题,请参考以下文章
java中怎样将视频文件转换成二进制文件再转换回视频文件?求具体代码!
java新手在mysql数据库读取mysql.properties文件出错,求大神帮忙