如何逐步从文本文件中读取x个字符

时间:2012-11-08 22:28:59

标签: java

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

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

其中bytes是:bytes = new byte [5],我调用这两行代码直到status变为-1,我面临的问题是,输出不是我上面提到的,但是我得到了这个:

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

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

2 个答案:

答案 0 :(得分:1)

您当前的解决方案适用于ASCII,但其他编码中的许多字符使用多个字节。您应该分别使用Readerchar[]而不是InputStreambyte[]

答案 1 :(得分:0)

事实证明,我每次读取新输入时都需要清除字节缓冲区,我只是使用for循环将其清零并且工作正常