0

我正在尝试逐步从文本文件中读取 x 个字符。因此,如果我有:aaaaabbbbbcccccabckcka 并且我一次阅读 5 个,我会得到 aaaaa、bbbbb、ccccc、abckc 和 ka。我正在使用的代码是:

            status =  is.read(bytes);
            text = new String(bytes);

其中字节是:字节=新字节[5],我正在调用这两行代码,直到状态变为-1,我面临的问题是,输出不是我上面提到的,但我得到了这个:

aaaaa, bbbbb, ccccc, abckc 和 kackc,注意最后一段 'kackc' 是垃圾,为什么会这样?

注意:字节在读取循环之外被初始化一次。

4

2 回答 2

1

您当前的解决方案适用于 ASCII,但其他编码中的许多字符使用超过一个字节。您应该分别使用 aReader和 achar[]而不是 anInputStream和 a byte[]

于 2012-11-08T23:29:26.510 回答
0

事实证明,每次读取新输入时我都需要清除字节缓冲区,我只是使用了一个 for 循环将其归零并且它有效

于 2012-11-08T22:32:45.560 回答