其他分享
首页 > 其他分享> > IO流的相关知识点

IO流的相关知识点

作者:互联网

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();//代码走到这个地方又有一个时间标记

标签:知识点,字节,length,IO,相关,new,buf,bis,输入
来源: https://blog.csdn.net/weixin_62972506/article/details/122769655