问题1:假设文件只有五个字符,而用来存储字符的数组有1024个字符,直接使用FileReader的read()方法读取然后输出就会有1019个空字符,如何来解决这个问题呢?
    解决方案:很容易想到的方法就是,我们定义一个长度为5的字符数组就可以了,这样确实可以暂时解决问题。

    问题2:可是我们往往不知道读取的文件有多大,如果文件中不止5个字符,而是有几万个字符我们又应该怎么办呢?
    解决方案:

    1. String file = "D://hello.txt";
    2. FileReader fr = new FileReader(file);
    3. char[] cbuf = new char[1024];
    4. int len = fr.read(cbuf);//将数据读入到cbuf中并返回读取到的数据长度
    5. StringBuilder builder = new StringBuilder();
    6. builder.append(cbuf,0,len); //将cbuf 0 到len长度的数据添加到builder
    7. System.out.println(builder.toString());

    运行这段代码,我们会发现输出是正确的,没有再打印出多余的空格。

    问题3:可是我们又会有疑问了,如果文本文件大于1K(1024byte),这段代码肯定就行不通了,怎么办呢?
    最终解决方案:
    很简单,加个循环就可以,这样修改之后我们就可以读取任意的文件,并将其内容输出到控制台了。这也是通用的IO流代码格式!