「javaio流乱码」javaio流代码

博主:adminadmin 2023-01-14 10:27:07 600

今天给各位分享javaio流乱码的知识,其中也会对javaio流代码进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

本文目录一览:

java io乱码

readChar读取的约定是 此输入流的下两个字节,将它们解释为一个 char。

下面是DataInputStream里readChar方法的源码是这样写的

    public final char readChar() throws IOException {

        int ch1 = in.read();

        int ch2 = in.read();

        if ((ch1 | ch2)  0)

            throw new EOFException();

        return (char)((ch1  8) + (ch2  0));

    }

readByte是读取一个字节,然后你手工把他变为char

下面是DataInputStream里readByte方法的源码是这样写的

    public final byte readByte() throws IOException {

        int ch = in.read();

        if (ch  0)

            throw new EOFException();

        return (byte)(ch);

    }

所以一个是乱码一个不是,因为他们的约定不一样

API里已经有解释了,再看一下源码既更清楚

如果是读取文本,推荐使用java.io.Reader里的方法,例如:FileReader

java 文件IO 读取乱码问题

比较简单的做法,利用FileReader。参见代码:

测试文件: b.txt

IoTest.java

运行结果:

java问题,被IO流中文乱码搞晕了

你读取用utf-8,那如果你txt文本是用其它的编码方式肯定会出现乱码

你字节流一次读取一行,这样转化就不会出现一个字符的两个字节被分开读取并输出的状况,不会出现乱码

utf-8 是可变长编码,如果你程序选择的编码方式是定长编码方式,读取字符时肯定是会出现乱码

关于javaio流乱码和javaio流代码的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。