回忆java输入输出流,走出误区
input read 将一个XXX读入(input)---从输入流中读取数据的下一个字节(code操作的)。
output write 将一个类型的数据写入此流(code操作的)---然后把XXX输出(output)到目的地
read(byte[] buf)
write(byte[] buf)
read和write中都有这种带参的情况,但是作用完全不同;
read中的buf是装参数的容器:将input中的字节放入到buf中;
write中的buf是传递参数的容器:我们要给output的数据已经提前被我们放到了output中。
最开始学习流 fileInput... fileOutput
我认为流是相对于外存和内存来讲的;
当我们把外存中的物理文件读到内存中就是fileInput
当我们把内存中的文件写到外存中就是fileOutput
但是不到一个小时 我就否认我的这个不算正确的想法;
我觉得这个范围太大了还是很模糊;
应该是相对于程序来讲的;
如图示:
在大多数时候,input和output都于FileInputStream/Reader、FileOutputStream/Writer开始,构造中只需要一个路径,可以看出在大多数时候,在input中输入时自动的,在output中输出是自动的;而通过底层的FilInput、FileOutput进行包装后的BufferedInput、BufferedOutput、DataInput、DataOutput等等,我们可以看出:底层的流是容器,高层的流是对底层的流进行包装(装饰者模式),进行功能扩展。
某些特例使用output进行加密,压缩操作的时候,使用write入之后,通过ByteArrayOutputStream做为底层的容器,使用toByteArray方法获取到output中的值!
最后总结:
read读出
write写入
(不管是输入还是输出流,本质都是容器用于存放数据)
正确的理解了这个过程,也就理解了input和output是相对于程序来讲的。
内存和程序。
外存和程序。
回忆java输入输出流,走出误区的更多相关文章
- Java输入/输出流体系
在用java的io流读写文件时,总是被它的各种流能得很混乱,有40多个类,理清啦,过一段时间又混乱啦,决定整理一下!以防再忘 Java输入/输出流体系 1.字节流和字符流 字节流:按字节读取.字符流: ...
- 深入理解Java输入输出流
Java.io包的File类,File类用于目录和文件的创建.删除.遍历等操作,但不能用于文件的读写. Java 对文件的写入和读取涉及到流的概念,写入为输出流,读取为输入流.如何理解流的概念呢?可以 ...
- Java基础学习总结(47)——JAVA输入输出流再回忆
一.什么是IO Java中I/O操作主要是指使用Java进行输入,输出操作. Java所有的I/O机制都是基于数据流进行输入输出,这些数据流表示了字符或者字节数据的流动序列. Java的I/O流提供了 ...
- Java 输入输出流 转载
转载自:http://blog.csdn.net/hguisu/article/details/7418161 1.什么是IO Java中I/O操作主要是指使用Java进行输入,输出操作. Java所 ...
- Java输入输出流(一)——常用的输入输出流
1.流的概念:在Java中,流是从源到目的地的字节的有序序列.Java中有两种基本的流--输入流(InputStream)和输出流(OutputStream). 根据流相对于程序的另一个端点的不同,分 ...
- java输入输出流总结 转载
一.基本概念 1.1 什么是IO? IO(Input/Output)是计算机输入/输出的接口.Java中I/O操作主要是指使用Java进行输入,输出操作. Java所有的I/O机制都是 ...
- Java输入输出流(转载)
转自http://blog.csdn.net/hguisu/article/details/7418161 目录(?)[+] 1.什么是IO Java中I/O操作主要是指使用Java进行输入,输出操作 ...
- java输入输出流(I/O)总结
io流的 四个基本类 java.io包中包含了流式I/O所需要的所有类.在java.io包中有四个基本类:InputStream.OutputStream及Reader.Writer类,它们分别处理字 ...
- Java输入输出流(2)
6. Java.IO流类库 1. io流的四个基本类 java.io包中包括了流式I/O所须要的全部类. 在java.io包中有四个基本类:InputStream.OutputStream及Reade ...
随机推荐
- GDB常用命令整理
(gdb) break xxx (gdb) b xxx 在源代码指定的某一行设置断点,其中 xxx 用于指定具体打断点的位置. (gdb) run (gdb) r 执行被调试的程序,其会自动在第一个断 ...
- 记录一些css奇淫技巧
文本两端对齐 文字在固定宽度内两端对齐 text-align: justify; text-align-last: justify; 滤镜filter 元素(经常用作图片)置灰效果,类似disable ...
- 一定要收藏的5个优秀的SpringCloud开源项目
上一期为大家推荐了几个前端模板,没看过的点下面 一定要收藏的5个后台管理系统的前端框架 今天再为大家推荐几个优秀的SpringCloud开源脚手架项目,开箱即用,不管是学习还是开发新项目,都非常不错. ...
- POJ1934 Trip 题解
LCS 模板,但要输出具体方案,这就很毒瘤了. 神奇的预处理:fa[i][j]表示在 \(a\) 串的前 \(i\) 个字符中,字母表第 \(j\) 个字母最晚出现的位置,fb[i][j]同理. 这样 ...
- mysqli_fetch_row()函数返回结果的理解
在PHP处理对数据库查询返回的结果集,即mysqli_query()函数返回的结果集,我们可以把它处理为数组形式以便于处理. 我们一般会用下面四个函数: 1.array mysqli_fetch_ar ...
- videojs文档翻译Guides-components
components Components Video.js播放器的架构围绕组件. Player类和所有表示播放器控件和其他UI元素的类都继承自Component类. 这种架构使得可以轻松地以反映DO ...
- shiro反序列化550、721
shiro550反序列化 获取docker镜像 docker pull medicean/vulapps:s_shiro_1 重启docker systemctl restart docker 启动d ...
- php预定义常量运用
当前url 'http://'.$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI']; 当前文件路径 dirname(__FILE__)header(" ...
- 大数据学习(11)—— Hive元数据服务模式搭建
这一篇介绍Hive的安装及操作.版本是Hive3.1.2. 调整部署节点 在Hadoop篇里,我用了5台虚拟机来搭建集群,但是我的电脑只有8G内存,虚拟机启动之后卡到没法操作,把自己坑惨了. Hive ...
- 内置函数 strlen
1 //内置函数 strlen 2 //计算字符串的实际长度,不含字符串结束标准\0 3 4 #include<stdio.h> 5 #include<stdlib.h> 6 ...