java读取CHAR

来源:百度知道 编辑:UC知道 时间:2024/06/25 08:17:21
大家好,我有个问题。
我有个C++写的文件,想破解它,前面一切顺利,可是中间遇到了几个CHAR类型的数值。我想用JAVA读取,请问我一次应该读取2个BYTE然后转化为CHAR还是一个BYTE。
请问,如何在JAVA中将BYTE[]转化为CHAR。我转化的是乱码

但是这些文件,都应该是经过编译的啊,都是些二进制指令的形式,不知道如何破解。
你可以试试这样,
一次读入一个byte,定义变量存放读入的byte b;
char c = (char)b;//转换成char;

将文件封装为char读取的流就OK

import java.io.*;
class Test{
public static void main(String[] str)throws Exception{
char[] buf=new char[1024];
int size=0;
FileReader fileR=new FileReader("j:\\3.txt"); //创建文件读取类对象
BufferedReader read=new BufferedReader(fileR); //让文件读取作为缓冲读取的构造参数
while((size=read.read(buf,0,1024))!=0){
for(int i=0;i<size;i++){
System.out.println(buf[i]);
}
}
}
}

没有试过,不知这样转化可以不?
假如:BYTE B[2]; CHAR C;
转化:
C = (char)B[0]<<8 + B[1];
先将b[0]左移8位,再相加。

java:
char(字符型) 2个字节

c++:
char 一个字节