前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >什么是IO流_io流实现

什么是IO流_io流实现

作者头像
全栈程序员站长
发布2022-11-01 15:14:22
6680
发布2022-11-01 15:14:22
举报

什么是IO流

先看一段百度上的解释:

什么是IO流_io流实现
什么是IO流_io流实现

当然:如果你看不懂,那么你只需要记住下面3句话.

1.

什么是IO流_io流实现
什么是IO流_io流实现

(1).我们知道,每个人家里喝的水都是从自来水厂来的,自来水厂的水又是从水源地来的,

(2).水是通过水管来的。

(3).那么这当中的水流,便可以理解为IO流。

2. 那么JAVA中的IO流呢;

什么是IO流_io流实现
什么是IO流_io流实现

(1).在java中,java就是自来水厂,水源地就是源,家就是目的

(2).//对于自来水厂当做参照物来说,从水源地流到我自来水厂的水,是从外面进来的,那么水是输入进来的。(输入)

从自来水厂到家的水,是从自来水厂流出的(输出)。

对于java程序来说,也是一样的,从源地到我java中的流,便是输入流(InputStream),而从我java中流出的便是输出流(OutputStream)

(3).那么你已经知道什么是输入流(InputStream)和输出流(OutputStream)了。

3.下面再看一幅图,缓冲区

什么是IO流_io流实现
什么是IO流_io流实现

(1).当我们需要水的时候,那么一个储水池能够更好的满足我们,能够让我们想要水就有水。提高的水到效率

(2).java中的这个储水池叫做缓冲区,(Buffered?)一个用于特定基本类型数据的容器。

那么这个(问号)?是什么意思呢?

我们知道储水池有很多种类型的,那么java中的缓冲区自然也有很多种类型的,例如以下最常用的

什么是IO流_io流实现
什么是IO流_io流实现

我们已经知道的InputStream是输入流,那么BufferedInputStream就是输入流的缓冲区了;

同样,那么OutputStream是输出流,那么BufferedOutputStream就是输出流的缓冲区了;

4.转换流

什么是IO流_io流实现
什么是IO流_io流实现

(1).同样的 ,java中的转换流,相当于过滤器,是一种对数据进行编码,改变格式的存储;如下:

可以将字符以指定编码格式存储。 可以对文本数据指定编码格式来解读 指定编码表的动作由构造函数完成

(2).分为InputStreamReader OutputStreamWriter

InputStreamReader 使用: InputStreamReader isr = new InputStreamReader(is, “gbk”);

OutputStreamWriter 使用: OutputStreamWriter osw = new OutputStreamWriter(os, “ISO-8859-1”);

IO流的分类:

介绍几个最主要的;分别是字符流,字节流,转换流。

什么是IO流_io流实现
什么是IO流_io流实现

(1).字节流

什么是IO流_io流实现
什么是IO流_io流实现

首先:字节流可划分为两类 输入流InputStream 输出流OutputStream

对于java来说:当对文件的读取的时候,使用FileInputStream;

对于java来说:当对文件的输出的时候。使用FileOutputStream;

如下,完成一个在f盘下的r.txt文件,再复制到f盘下的rrrr.txt;一个文件的复制,并改名;

(1)使用时先创建: new FileInputStream( 此处为String类型的需要读入数据文件地址 );

什么是IO流_io流实现
什么是IO流_io流实现

(2)创建一个缓冲区(缓冲区的创建能够提高文件的读取效率)

什么是IO流_io流实现
什么是IO流_io流实现

(3)使用时先创建: new FileOutputStream( 此处为String类型的需要输出数据文件地址 );

什么是IO流_io流实现
什么是IO流_io流实现

(4).创建一个缓冲区(缓冲区的创建能够提高文件的读取效率)

什么是IO流_io流实现
什么是IO流_io流实现

(5).数据的读取:创建一个byte类型的数组,至于数组的长度建议为1024的倍数;

什么是IO流_io流实现
什么是IO流_io流实现

(6).数据的写入

什么是IO流_io流实现
什么是IO流_io流实现

(7).流的刷新与关闭:对于初学者记住,先刷新,后关闭。 而关闭的顺序,简单来讲你可以全部关闭,不会出错,

至于其中的关闭顺序,先不予探究。

什么是IO流_io流实现
什么是IO流_io流实现

(2).字符流

以下就是字符流的详细:

字符流是字节流的类似。

1.字符流分为 输入流 输出流

什么是IO流_io流实现
什么是IO流_io流实现

首先:字符流可划分为两类 输入流Reader 输出流Writer

对于java来说:当对文件的读取的时候,使用FileReader ;

对于java来说:当对文件的输出的时候。使用FileWriter;

如下,完成一个在f盘下的r.txt文件,再复制到f盘下的rrrr.txt;一个文件的复制,并改名;

(1)使用时先创建: new FileReader( 此处为String类型的需要读入数据文件地址 );

(2)创建一个缓冲区(缓冲区的创建能够提高文件的读取效率)

(3)使用时先创建: new FileWriter;( 此处为String类型的需要输出数据文件地址 );

(4).创建一个缓冲区(缓冲区的创建能够提高文件的读取效率)

(5).数据的读取:创建一个byte类型的数组,至于数组的长度建议为1024的倍数;

(6).数据的写入

(7).流的刷新与关闭:对于初学者记住,先刷新,后关闭。 而关闭的顺序,简单来讲你可以全部关闭,不会出错,

public class CopyDemo4 { public static void main(String[] args) { FileReader fr = null; BufferedReader br = null; FileWriter fw = null; BufferedWriter bw = null; try { fr = new FileReader(“f://rrrr.txt”); //创建输入流 br = new BufferedReader(fr);//创建输入流缓冲区 fw = new FileWriter(“f://ww.txt”);//创建输出流 bw = new BufferedWriter(fw);//创建输出流缓冲区 String readLine = null; while ((readLine = br.readLine()) != null) { //数据的复制 bw.write(readLine); bw.newLine(); bw.flush(); //刷新 } } catch (IOException e) { //try catch异常 e.printStackTrace(); } finally { try { if (fr != null) { fr.close(); //流的关闭 } if (br != null) { br.close(); } if (fw != null) { fw.close(); } if (bw != null) { bw.close(); } } catch (IOException e) { e.printStackTrace(); } } } }

(3).转换流

(1) .分类 两类

什么是IO流_io流实现
什么是IO流_io流实现

(2). 使用

1. 先创建输入流对象

InputStream is = new FileInputStream(“e://a.txt”);

2.创建转换流对象

输入流对象, 读出的编码

InputStreamReader isr = new InputStreamReader(is, “gbk”);

3.创建输出流对象

OutputStream os = new FileOutputStream(“d://asd.txt”);

4. 创建转换流对象

输 出流对象, 输出的编码

OutputStreamWriter osw = new OutputStreamWriter(os,“ISO-8859-1”);

以上就是IO流的简单介绍

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/179944.html原文链接:https://javaforall.cn

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022年10月20日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 什么是IO流
    • 2. 那么JAVA中的IO流呢;
      • 3.下面再看一幅图,缓冲区
        • 4.转换流
        • IO流的分类:
          • (1).字节流
            • (2).字符流
              • (3).转换流
              相关产品与服务
              容器服务
              腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
              领券
              问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档