-1

我有这个酸:

public static void inBufferBooks() throws IOException
{
    Reader inStreamBooks = null;
    BufferedReader bufferIn = null;

    try
    {
        inStreamBooks = new FileReader("Files/BufferBook.txt");
        bufferIn = new BufferedReader(inStreamBooks);

        char text[] = new char[10];

        int i = -1;

        while ((i = inStreamBooks.read(text, 0, 10)) != -1)
        {
            System.out.print(text);
        }

当我在文本控制台的末尾读取文件时,打印填充最后一个数组的字符。如何从文件中读取整个文本而没有最后一个数组的冗余字符?

4

3 回答 3

0

为了解决这个问题,我改变了我的while循环,如下所示:

while((i = bufferText.read(text, 0, text.length)) != -1){
            if(text.length == i){
                System.out.print(text);
            }else if (text.length != i){
                    System.out.print(Arrays.copyOfRange(text, 0, i));
            }

感谢大家的帮助。

于 2017-01-19T09:06:42.013 回答
0

如何从文件中读取整个文本而没有最后一个数组中的冗余字符?

使用read返回给您的值来确定数组中有多少字符仍然有效。从文档中

回报:

读取的字符数,如果已到达流的末尾,则为 -1

于 2017-01-06T15:33:51.040 回答
0

您需要记住您阅读的字符数量,并且只打印那么多字符。

for (int len; ((len = inStreamBooks.read(text, 0, text.length)) != -1; ) {
    System.out.print(new String(text, 0, len));
}
于 2017-01-06T15:34:43.117 回答