ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

IO流的相关知识点

2022-02-02 16:58:12  阅读:150  来源: 互联网

标签:知识点 字节 length IO 相关 new buf bis 输入


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

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有