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

来源:4-4 字节流之数据输入输出流

亚努人

2016-12-17 17:54

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

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

写回答 关注

3回答

  • 春城乐
    2016-12-18 09:04:39
    已采纳

    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);

    }

    }


    矮纸斜行Dw...

    我也是,下面会报异常,IOException,这是为什么,望解答

    2017-02-15 13:11:20

    共 1 条回复 >

  • wendy4165364
    2017-02-24 16:07:49

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

    System.out.println(s);


  • 春城乐
    2016-12-18 09:04:02

    char i2;

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

    System.out.print(i2);

    }

    wendy4...

    不能用返回的Char型字符和-1判断,这个while会一直进行下去,所以会抛出EOF Exception

    2017-02-24 16:09:49

    共 3 条回复 >

文件传输基础——Java IO流

为您介绍IO流的使用,以及对象的序列化和反序列化的内容

133754 学习 · 1030 问题

查看课程

相似问题