欢迎您访问365答案网,请分享给你的朋友!
生活常识 学习资料

IO流的相关知识点

时间:2023-08-01

I:

input 输入流,从硬盘上面读取数据到内存里面,这叫输入

适用于磁盘上有一个1.TXT的文件,可以将1.TXT文件内容读取到Java代码中

O:

Output 输出流,从内存中写入到硬盘上面,这叫输出

适用于Java代码有一个String类型的数据,可以将整个数据存入到TXT文件中

输入流

分为 字节输入流 和 字符输入流

输出流

分为字节输出流 和 字符输出流

字节输出流

InputStram 直接的子类FileInputStream

FileInputStream不具备缓冲的效果,需借助BufferedInputStream 实现

//字节输入流

File file = new File("c:/aaa/1.txt");

FileInputStream fis = new FileInputStream(file);

BufferedInputStream bis = new BufferedInputStream(fis);

byte[] buf = new byte[4*1024];//每次缓冲4096个字节

while ((length = bis.read(buf)) != -1) {
            System.out.println(length);

System.out.println(new String(buf, 0, length));
        }

    //关闭流
        bis.close();
        fis.close();
    }
}

一个小案例进一步了解   复制视频

public static void copeVideo () throws IOException {

磁盘上面某一个文件夹中先有视频-》写到内存中-》在磁盘的另外文件夹下面写入
                //先使用z字节输入流写到内存中,再使用字节输出流写入磁盘

long start = System.currentTimeMillis();//代码走到这个地方会有一个时间标记
                //1.创建对应的缓冲字节输入流和缓冲字节输出流对象
                BufferedInputStream bis = new BufferedInputStream(new FileInputStream(new File("C:\Users\wangbo\Desktop\zz2115\day21\video\2字节输入流的入门案例.mp4")));
                //从内存中写入到一个文件中
                BufferedOutputStream bos =  new BufferedOutputStream(new FileOutputStream(new File("c:/aaa/1.mp4")));
                //2.准备一个字节数组缓冲区数组
                byte[] buf = new byte[1024 * 4];
                int length = -1;
                //bis.read(buf))  是从磁盘里面写入到内存
                while ((length = bis.read(buf))!= -1) {

bos.write(buf, 0, length);
                }
                //关闭流
                bos.close();
                bis.close();
                
                long end = System.currentTimeMillis();//代码走到这个地方又有一个时间标记

Copyright © 2016-2020 www.365daan.com All Rights Reserved. 365答案网 版权所有 备案号:

部分内容来自互联网,版权归原作者所有,如有冒犯请联系我们,我们将在三个工作时内妥善处理。