如何读取整个文件(char [] cbuf,int off,int len)

时间:2017-01-06 15:29:07

标签: java stream bufferedstream

我有这个灵魂:

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

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

3 个答案:

答案 0 :(得分:0)

  

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

使用值read返回给您,以确定数组中有多少字符仍然有效。来自https://wordpress.org/plugins/json-api/other_notes/

  

<强>返回:

     

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

答案 1 :(得分:0)

你需要记住你可以阅读的字符怎么样,只打印那么多字符。

for (int len; ((len = inStreamBooks.read(text, 0, text.length)) != -1; ) {
    System.out.print(new String(text, 0, len));
}

答案 2 :(得分:0)

要解决此问题,我在循环时更改,如下所示:

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

感谢大家的帮助。