问答详情
源自:4-4 字节流之数据输入输出流

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

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

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

提问者:亚努人 2016-12-17 17:54

个回答

  • 春城乐
    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);

    }

    }


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

    }