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();
        }
    }

    【运行结果】

     

  • 相关阅读:
    shell脚本-awk
    shell脚本-sed命令
    shell脚本-grep和正则表达式
    wuti
    dmesg、stat命令
    uname、hostname命令
    tee、vi/vim命令
    tr、od命令
    vimdiff、rev命令
    dos2unix、diff命令
  • 原文地址:https://www.cnblogs.com/HigginCui/p/5924282.html
Copyright © 2011-2022 走看看