为了账号安全,请及时绑定邮箱和手机立即绑定

请问本节中以utf-16be格式write进去的怎么read出来呢

dos.writeChars("中国");//以utf-16be格式写进文件

read中有readUTF();方法可以直接读utf-8编码格式,请问上述的utf-16be或者其他的格式又该怎么读出来呢?谢谢!

正在回答

3 回答

public static void main(String[] args) throws IOException {

// TODO 自动生成的方法存根

String file="demo/dos.txt";

DataOutputStream dos=new DataOutputStream(new FileOutputStream(file));

dos.writeInt(10);

dos.writeInt(-10);

dos.writeLong(10L);

dos.writeDouble(10.5);

dos.writeChar('a');

dos.writeBoolean(true);

//采用UTF-8编码写出

dos.writeUTF("中国");

//采用UTF-16be编码写出

dos.writeChars("我爱你");

//dos.close();

数据流入与流出.printHex(file);

DataInputStream dis=new DataInputStream(new FileInputStream(file));

int i=dis.readInt();

System.out.println(i);

i=dis.readInt();

System.out.println(i);

long ii=dis.readLong();

System.out.println(ii);

double iii=dis.readDouble();

System.out.println(iii);

char iiii=dis.readChar();

System.out.println(iiii);

boolean iiiii=dis.readBoolean();

System.out.println(iiiii);

//采用UTF-8编码读出

String iiiiii=dis.readUTF();

System.out.println(iiiiii);

//采用UTF-16be编码读出

char i2;

while((i2=dis.readChar())!=-1){

System.out.print(i2);

}

}


0 回复 有任何疑惑可以回复我~
#1

矮纸斜行Dwarf

我也是,下面会报异常,IOException,这是为什么,望解答
2017-02-15 回复 有任何疑惑可以回复我~

String s=Character.toString(dis.readChar())+Character.toString(dis.readChar());

System.out.println(s);


0 回复 有任何疑惑可以回复我~

char i2;

while((i2=dis.readChar())!=-1){

System.out.print(i2);

}

0 回复 有任何疑惑可以回复我~
#1

qq_星尘_8

为何我按你这样写有异常呢
2017-01-05 回复 有任何疑惑可以回复我~
#2

矮纸斜行Dwarf 回复 qq_星尘_8

我也是我也是,请问你解决了吗?
2017-02-15 回复 有任何疑惑可以回复我~
#3

wendy4165364

不能用返回的Char型字符和-1判断,这个while会一直进行下去,所以会抛出EOF Exception
2017-02-24 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

请问本节中以utf-16be格式write进去的怎么read出来呢

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信