37字符流-字节缓冲输入流:BufferedInputStream

知识点:

java.io.BufferedInputStream extends InputStream

字节缓冲输入流:
继承父类的方法:
 public void close() 关闭此输入流并释放与此流相关联的任何系统资源
public abstract int read()从输入流读取数据的下一个字节
public int read(byte[] b)从输入流中读取一些字节,并将他们存储到字节数组b中

构造方法:
   BufferedInputStream(InputStream in) 创建一个BufferedInputStream 并保存其参数,即输入流in,以便将来使用
   BufferedInputStream(InputStream in,int size) 创建具有缓冲区大小的 BufferedInputStream,并保存其参数,即输入流in,以便将来使用
   参数:
     InputStream in:字节输入流 我们可以传递FileInputStream增加一个缓冲区,提高FileInputStream的读取效率
     int size:指定缓冲流 内部的大小,不指定是默认的

     步骤:
     1.创建FileInputStream对象,构造方法中绑定要读取的数据源
     2.创建BufferedInputStream的对象,构造方法中传递FileInputStreanm对象,提高FileInputStream对象的读取效率
     3.使用BufferedInputStream对象中的read对象,读取文件
     4.释放资源

代码:

package demo38字节缓冲输入流BufferedInputStream;

import java.io.BufferedInputStream;
import java.io.FileInputStream;
import java.io.IOException;

/*
java.io.BufferedInputStream extends InputStream
字节缓冲输入流:
继承父类的方法:
 public void close() 关闭此输入流并释放与此流相关联的任何系统资源
public abstract int read()从输入流读取数据的下一个字节
public int read(byte[] b)从输入流中读取一些字节,并将他们存储到字节数组b中

构造方法:
   BufferedInputStream(InputStream in) 创建一个BufferedInputStream 并保存其参数,即输入流in,以便将来使用
   BufferedInputStream(InputStream in,int size) 创建具有缓冲区大小的 BufferedInputStream,并保存其参数,即输入流in,以便将来使用
   参数:
     InputStream in:字节输入流 我们可以传递FileInputStream增加一个缓冲区,提高FileInputStream的读取效率
     int size:指定缓冲流 内部的大小,不指定是默认的

     步骤:
     1.创建FileInputStream对象,构造方法中绑定要读取的数据源
     2.创建BufferedInputStream的对象,构造方法中传递FileInputStreanm对象,提高FileInputStream对象的读取效率
     3.使用BufferedInputStream对象中的read对象,读取文件
     4.释放资源
 */
public class DemoBuffereInputStream {
    public static void main(String[] args) throws IOException {
        //1.创建FileInputStream对象,构造方法中绑定要读取的数据源
        FileInputStream fis=new FileInputStream("E:\\多线程\\aa.txt");
        //2.创建BufferedInputStream的对象,构造方法中传递FileInputStreanm对象,提高FileInputStream对象的读取效率
        BufferedInputStream bis=new BufferedInputStream(fis);
        //3.使用BufferedInputStream对象中的read对象,读取文件
        //int read()从输入流中读取数据下一个字节

        /*int len=0;//记录读取到的字节
        while ((len=bis.read())!=-1){
            System.out.println(len);
        }*/

        //public int read(byte[] b)从输入流中读取一些字节,并将他们存储到字节数组b中
        byte[] bytes=new byte[1024];//存储每次读取的数据
        int len=0;//记录每次读取的有效字节个数
        while((len=bis.read(bytes))!=-1){
            // 2.String(byte[] bytes,int offset,int length):把字节数组的一部分转换为字符串 offset数组的开始索引 length:转换字符串的个数
            System.out.println(new String (bytes,0,len));
        }


        //4.释放资源
        bis.close();
    }
}

运行:

猜你喜欢

转载自blog.csdn.net/dengfengling999/article/details/123998270
今日推荐