看毕老师的视频IO流部分,字符读取流的read()方法,让我搞不明白,如下:
FileReader fr = new FileReader("abcd.txt");
int ch = 0;//此处定义int接收,因为read()方法的返回值是int型,读取的是字符,为什么是int呢?
while((ch=fr.read())!=-1)
{
System.out.println((char)ch);
}
fr.close();
FileReader fr = new FileReader("ab.txt");
char[] arr = new char[1024];//定义数组接收读取到的字符,为什么定义成char类型的数组呢,不是返回int型吗?
int num = 0;
while((num=fr.read(arr))!=-1)
{
System.out.println(new String(arr,0,num));
}
fr.close();
对字符流不是很理解,说是基于字节流,读取的是字节,只是缓冲了一下,然后去查编码表,既然查表了返回的应该就是字符了,为什么还是int型呢?
如果返回的是int型,那么就应该定义int数组接收,为什么定义char数组呢,矛盾啊! |