zoukankan      html  css  js  c++  java
  • 关于IO流中下while循环句解释:while ((len=fr.read(c))!=-1)

    在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拼接为一个字符串对象

  • 相关阅读:
    Apache虚拟主机(VirtualHost)配置
    LAMP源码安装
    SUSE上配置SAMBA服务
    Linux下安装或升级Python 2.7
    HTML5,CSS3,JS绘制饼图
    Single Number
    Reverse Words in a String
    C++控制台日历
    百度JS破盗链
    腾讯前端突击队Ⅱ
  • 原文地址:https://www.cnblogs.com/zhengyu-ahu/p/12350572.html
Copyright © 2011-2022 走看看