码迷,mamicode.com
首页 > 其他好文 > 详细

关于IO流中下while循环句解释:while ((len=fr.read(c))!=-1)

时间:2020-02-23 18:12:14      阅读:115      评论:0      收藏:0      [点我收藏+]

标签:文本   alt   循环   字符流   dem   字符串   c中   unicode编码   print   

在java中char类型默认使用Unicode编码,一个字符占两个字节,这里与C语言不同

测试代码代码如下:

public class Demo03 {
    public static void main(String[] args) throws IOException {
        FileReader fr = new FileReader("G:\\My Project\\Java基础学习\\resources\\1.txt");
        //字符流以字符为单位,故这里用char
        char[] c=new char[8];
        int len;
        while ((len=fr.read(c))!=-1){
            System.out.println("len的值为:"+len);
            // new String(c,0,len)意思是从0到len到数组转换为字符串
            System.out.println(new String(c,0,len));
        }
        fr.close();
    }
}

在以上程序中,c是char型数组的实例化对象

技术图片

这时数组c得到了倒数第二句
技术图片

这是控制台的输出:

技术图片

那么read()方法怎么理解呢?

通过read()方法将对象的文本字符(这也包括转义字符)按照数组的长度一次次的赋值给数组元素,返回值为每次赋值后数组中的字节个数,如果数组不为空,有n个元素就返回值为n(这包括了数组满的情况),如果为0个元素则返回-1

如何理解new String(c,0,len)呢?

这个是String类的构造方法,是将数组c中的元素从0到len拼接为一个字符串对象

关于IO流中下while循环句解释:while ((len=fr.read(c))!=-1)

标签:文本   alt   循环   字符流   dem   字符串   c中   unicode编码   print   

原文地址:https://www.cnblogs.com/zhengyu-ahu/p/12350572.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!