zoukankan      html  css  js  c++  java
  • IO流04_InputStream和Reader输入流

    【输入流中的字符流和字节流】

    【InputStream和Reader】

    InputStream和Reader是所有输入流的抽象基类,本身不能实例化,但是他们是所有输入流的模板。

    [ InputStream包含的方法 ]

    int read()       从输入流中读去单个字节,返回读取的字节数。(字节类型转换成int类型)

    int read( byte[] b )     从输入流中最多读取b.length字节的数据,将数据存储在字节数组b中,返回读取的字节数

    int read( byte[] b, int off, int len )   从输入流中最多读取len个字节的数据,并将其存储在字节数组b中,并不是从数组起点开始,而是从off位置开始,返回读取的字节数

    [ Reader包含的方法 ]

    int read()       从输入流中读去单个字符,返回读取的字符数。(字符类型转换成int类型)

    int read( char[] c )     从输入流中最多读取c.length字符的数据,将数据存储在字符数组c中,返回读取的字符数

    int read( char[] c, int off, int len )   从输入流中最多读取len个字符的数据,并将其存储在字符数组c中,并不是从数组起点开始,而是从off位置开始,返回读取的字符数

    【测试1:FileInputStream读取文件中的数据,并打印到控制台】

    package com.Higgin.part3;
    import java.io.FileInputStream;
    
    public class FileInputStreamDemo {
        
        public static void main(String[] args) throws Exception {
            FileInputStream fis=new FileInputStream("c://testJavaIO/aaa.java"); //创建字节输入流
            byte[] bbuf=new byte[1024];  //创建一个字节长度为1024的缓存,即"竹筒"
            int hasRead=0;  //用于保存每次实际读取的字节数
            int i=0;
            while((hasRead=fis.read(bbuf))>0){  //如果取得数据为-1或0,说明上一次已经取完所有数据
                System.out.println(new String(bbuf,0,hasRead));
                System.out.println("i------"+i);
                i++;
            }
            fis.close();//关闭文件输入流
        }
    }

    【想要提取的文件中的内容】

    【运行结果】

    【将上面代码中的缓存数组的长度修改为80,即改为" byte[] bbuf=new byte[80]; "后的运行结果】

    【测试2:FileReader读取文件中的数据,并打印到控制台】

    package com.Higgin.part3;
    import java.io.FileReader;
    import java.io.IOException;
    
    public class FileReadDemo {
        public static void main(String[] args) throws IOException {
            FileReader fr=new FileReader("c://testJavaIO/aaa.java");
            char[] cbuf=new char[1024];  //创建一个字符长度为32的缓存,即"竹筒"
            int hasRead=0;  //用于保存实际读取的字符数
            int i=0;
            while((hasRead=fr.read(cbuf))>0){
                System.out.println(new String(cbuf,0,hasRead)); //每次取得缓存中的字符数组cbuf,将字符数组转化成字符串输出
                System.out.println("i------"+i);
                i++;
            }
            fr.close();
        }
    }

    【运行结果】

     

  • 相关阅读:
    Python 学习笔记 11.模块(Module)
    Python 学习笔记 8.引用(Reference)
    Python 学习笔记 9.函数(Function)
    Python 学习笔记 6.List和Tuple
    Python 学习笔记 4.if 表达式
    Python 学习笔记 2.自省
    Python 学习笔记 3.简单类型
    Python 学习笔记 7.Dictionary
    Python 学习笔记 5.对象驻留
    Python 学习笔记 10.类(Class)
  • 原文地址:https://www.cnblogs.com/HigginCui/p/5924282.html
Copyright © 2011-2022 走看看