栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

IO流的简单介绍

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

IO流的简单介绍

流是一种抽象概念,它代表了数据的无结构化传递。按照流的方式进行输入输出,数据被当成无结构的字节序或字符序列。从流中取得数据的操作称为提取操作,而向流中添加数据的操作称为插入操作。用来进行输入输出操作的流就称为IO流。换句话说,IO流就是以流的方式进行输入输出 。

 

缓冲的概念

快递:送到物流中转站,然后分批次的发。物流中转站就是缓冲的概念。

IO流 的本质就是对电脑的文件进行读和写的

计算机通过CPU内存读取磁盘上面的文件数据,一次读取1字节。但是可以加上缓冲的概念

每次读取4kb。效率会高点的,咱们可以测试一下。效率是不是确实高了。

IO流的分类

字节IO流:可以处理文本、图片、音频、视频等

字符IO流:只能处理文本

输入流: 从磁盘读取到内存

输出流:从内存写入到磁盘

​ 输入流分为两种:

​ 1.字节输入流 FileInputStream

​ 2.字符输入流 FileReader

​ 输出流分为两种:

​ 1.字节输出流 FileOutputStream

​ 2.字符输出流 FileWriter

操作 IO 流的模板:

1、创建源或目标对象

输入:把文件中的数据流向到程序中,此时文件是 源,程序是目标

File file = new File("d:/idea储存/aaa/斗破苍穹.txt");

输出:把程序中的数据流向到文件中,此时文件是目标,程序是源

File file1 = new File("d:/idea储存/bbb/斗破.txt");

2、创建 IO 流对象

输入:创建输入流对象

FileInputStream fis = new FileInputStream(file);

输出:创建输出流对象

FileOutputStream fos = new FileOutputStream(file1);

3、创建缓冲流:

BufferedInputStream bis = new BufferedInputStream(fis);
BufferedOutputStream bos = new BufferedOutputStream(fos);

4、具体的操作

int length = -1;
        byte[] buf = new byte[4 * 1024];
        while ((length = bis.read(buf)) != -1) {
            bos.write(buf, 0, length);
        }

5、关闭资源(先开后关,后开先关)

输入:输入流的 close() 方法

输出:输出流的 close() 方法

bos.close();
bis.close();

案例:

package com.qql.wss;
​
import java.io.*;
​
public class Demo1 {
    public static void main(String[] args) throws IOException {
        //将Java代码中的一个字符串写入到咱们的磁盘的某一个文件中
        //1.创建File对象,文件路径对象  告知编译器要把数据写到哪个文件中
        File file = new File("d:/aaa/2.txt");
        //2.实例化字节输出流对象
        FileOutputStream fos = new FileOutputStream(file);
        //3.对FileOutputStream  加上缓冲的效果
        //猜测一下  FileInputStream所对应的缓冲流  BufferedInputStream
        //FileOutputStream  所对应的缓冲流  BufferedOutputStream
        BufferedOutputStream bos = new BufferedOutputStream(fos);
        //4.将一个字符串写入到磁盘中
        String str = "大家再等我一天,后天聚聚呀!!!";
        //  write(byte[] b)
        //咱们的参数是字节数组,咋办?str是一个字符串 但是参数是一个字节数组,咋解决?
        //str是字符串 不能强转  将字符串转为字节数组,没有讲过!!!
        //将str字符串转为字节数组
        byte[] bytes = str.getBytes();
        bos.write(bytes);
        //5.写完以后一定要刷新流然后关闭流
        bos.flush();//没有实际的意义,可以不写的
        //6.关闭流
        //在输入流的时候一定是先开的后关,后开的先关
        bos.close();
        fos.close();
​
    }
}
​

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1041134.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号