Reader类的第二种read()方法
read
public int read(char[] cbuf)
throws IOException
将字符读入数组。
参数:
cbuf - 目标缓冲区
返回:
读取的字符数,如果已到达流的末尾,则返回 -1
抛出:
IOException - 如果发生 I/O 错误
注意事项:
- 定义数组长度时,定义为1024的整数倍,当定义为1024时是2k的大小
- 当数组的长度小于文件字符的个数时,可以分多次读取,每次读取都存放在同一个字符数组里面,后面读到的字符覆盖之前存放的内容,未覆盖的保留之前的内容。
- read(char[] buf)返回的是读取字符的个数,若读取为0,返回-1
- 转换成字符串时,使用new String(bug,0,num)
import java.io.*;
class FileReaderDemo2
{
public static void main(String[] args)
{
FileReader fr=null;
try
{
//创建一个文件读取流对象,和指定名称的文件相关联
//要保证该文件是已经存在的,如果不存在,会发生异常 FileNotFoundException
fr=new FileReader("ReaderDemo.txt");
char[] buf=new char[1024];
int num=0;
while((num=fr.read(buf))!=-1)
{
System.out.println("num:"+num+" "+new String(buf,0,num));
}
}
catch (IOException e)
{
e.printStackTrace();
}
finally
{
try
{
if(fr!=null)
{
fr.close();
}
}
catch (IOException e)
{
e.printStackTrace();
}
}
}
}