关于字符输入流中的两个read函数

关于字符输入流中的两个read函数

老师好,​想问一下,输入流是有两个read函数,一个是一个char一个char的输入,一个是一次输入char[]长度的字符。


那么这两种方法我们平时应该使用哪一种呢?或者说哪一种的效率会更好呢?


谢谢。

正在回答

登陆购买课程后可参与讨论,去登陆

1回答

同学你好,1. read()方法 是从此输入流中读取一个数据字节。 返回值是下一个数据字节,如果已到达文件末尾,则返回 -1;

    read(char[] cbuf) 方法是从输入流中将最多cbuf.length个字节的数据读入一个char数组cbuf中。方法返回读入数组cbuf的字节总数,如果因为已经到达文件末尾而没有更多的数据,则返回 -1。

2. 平常建议使用read(cahr[] cbuf) 方法,并read(char[] cbuf) 方法的效率比read()方法高。如下:   

    如果是读一个写一个,那read()方法就是从硬盘读n次,然后写n次。但如果是读一批写一批,那read(char[]  cbuf) 方法就是从硬盘读n次,然后放在内存中的这个字节数组cbuf中,然后写一次。

    假如有5个字节,加入char[] cbuf = new char[5];

      第一种方法read(),write(),需要读硬盘5次,写硬盘5次。而第二种方法read(char),write(new string(b,0,5)),就需要读硬盘5次,写硬盘1次,从而减少写的次数提交效率。

  • 晓舟 #1

    char数组和byte数组是可以相互转化的哦?

    2021-07-06 15:18:23
  • 同学你好,char数组和byte数组无法自动转换,刚是老师讲参数类型书写错误了,现在已修改,同学可以进行查看。

    祝学习愉快!

    2021-07-06 16:40:49
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师