黑马程序员技术交流社区
标题:
关于Reader类的read方法
[打印本页]
作者:
地狱天堂
时间:
2014-8-10 15:04
标题:
关于Reader类的read方法
本帖最后由 地狱天堂 于 2014-8-12 12:42 编辑
文件的读取的两种方式,见代码。
read() 读取单个字符。返回的是整型。打印时需要转成(char)。
read(char[] cbuf) 将字符读入数组。 是将读取到的字符直接存入字符数组。
问:为何read()不能将读到的字符直接返回字符,打印时还要多做一步转换?
<p>import java.io.FileReader;
import java.io.IOException;</p><p>
public class FileReadDemo {</p><p> public static void main(String[] args) {
FileReader fr=null;
//文件的读取方式一:
try {
fr=new FileReader("demo.txt");
int ch=fr.read();
while((ch=fr.read())!=-1){
System.out.println("ch="+(char)ch);
}
} catch (IOException e) {
System.out.println(e.toString());
}
finally{
try {
fr.close();
} catch (IOException e) {
System.out.println(e.toString());
}
}
//文件的读取方式二:
FileReader fr1=null;
try {
fr1=new FileReader("demo.txt");
char[] ch=new char[1024];
int num=0;
while((num=fr1.read(ch))!=-1){
System.out.println(new String(ch,0,num));
}
} catch (IOException e) {
System.out.println(e.toString());
}
finally{
try {
fr1.close();
} catch (IOException e) {
System.out.println(e.toString());
}
}
}</p><p>}
</p><p> </p>
复制代码
作者:
cs8630323
时间:
2014-8-10 15:23
你说的read方法返回int类型不方便,是因为你要打印才会觉得不方便,很多情况读取数据我们都不想打印,比如复制,会多此一举。
作者:
fantacyleo
时间:
2014-8-10 15:33
Java中的char只能取非负值,如果直接返回char,那while((ch=fr.read())!=-1)不是永远不会等于-1,变成死循环了?
作者:
地狱天堂
时间:
2014-8-12 13:46
cs8630323 发表于 2014-8-10 15:23
你说的read方法返回int类型不方便,是因为你要打印才会觉得不方便,很多情况读取数据我们都不想打印,比如 ...
知道了,后面课程有说到FileReader底层用的还是字节流
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2