34.1 字符流-- FileRead FileWrite

 

一次读取一个字符

     FileReader fr = new FileReader("aa.txt");
//        System.out.println(fr.read());
//        System.out.println(fr.read());
//        System.out.println(fr.read());
//        System.out.println(fr.read());
//        System.out.println(fr.read()); //如果读取数据的返回值是-1的时候,就说明没有数据了

        int len;
        while ((len=fr.read())!=-1) {
            System.out.println((char)len); //强制类型转换,int转为char
        }

        fr.close();

输出

34.1 字符流-- FileRead FileWrite_第1张图片

 

一次读取一个字符数组

 FileReader fr = new FileReader("a.java");
        char[] chs = new char[5]; //创建字符数组对象,定义数组长度为五(一次读五个数据)
        int len;
        while ((len=fr.read(chs))!=-1) {
//            System.out.println(new String(chs)); //每次读5个字符,如果最后一个字符不足五个,(后面的数组覆盖之前数组)如:最后数组分3个字符,会显示3个字符+之前数组的最后两字符
            System.out.println(new String(chs,0,len));
            System.out.println("len:" + len);
        }
        fr.close();

/*
//        System.out.println(fr.read(chs));
//        System.out.println(fr.read(chs));
//        System.out.println(fr.read(chs));
//        System.out.println(fr.read(chs));
        int lens = fr.read(chs); // a 1 \r \n a
        for(int i=0;i*/

 

 输出

34.1 字符流-- FileRead FileWrite_第2张图片

如果使用System.out.println(new String(chs));

34.1 字符流-- FileRead FileWrite_第3张图片

 

 

二、copydemo

  //一次读写一个字符数组
        FileReader fr = new FileReader("a.java");
        FileWriter fw = new FileWriter("b.java");
        char[] chs = new char[5];

        int len;
        while ((len=fr.read(chs))!=-1) {
            fw.write(chs,0,len);
            fw.flush();
        }

        fw.close();
        fr.close();

 

转载于:https://www.cnblogs.com/longesang/p/11319981.html

你可能感兴趣的:(java)