博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Java高级部分流---换个角度思考流
阅读量:2173 次
发布时间:2019-05-01

本文共 1071 字,大约阅读时间需要 3 分钟。

2015年12月9日16:37:07

Java流本质问题分析

作者:数据分析玩家

从学习Java流到现在,我认为最关键的就是对于流这个概念的理解,

书本上的解释是:流就是程序和设备之间嫁接起来的一根用于数据传输的管道,这个设备可以是本地硬盘、可以是内存条,也可以是网络所关联的另外一台计算机等等,其中不同管道上有不同的按钮,按下不同的按钮相当于调用不同的方法,这根带按钮的用于用于数据传输的管道就是流,即流就是一根管道.

从这个概念中:我们得出的结论是流就是一根管道,用于数据的传输

还有另外一个重要的问题:何为输入流与输出流?输入与输出到底是相对谁来说的?我从网上copy了一段很不错的话:按照数据流的方向不同可以分为输入流与输出流,其中输入与输出是相对于程序的角度而言的

对于流的认识,我们完全可以从另外一个角度来思考问题:从学习C语言、以及学习Java中流的知识以前,我们大脑中的输入设备就是键盘,输出设备就是显示器,但是学习完流以后完全打破了这个限制,输入设备以及输出设备我们可以自己进行设置,这个设备可以是本地硬盘、可以是内存条,也可以是网络所关联的另外一台计算机等等,所以java中流的引用,它的一个重要意义就在于:打破了传统意义上输入设备就是键盘,输出设备就是显示器的这种局限性,用户可以自行设计输入设备与输出设备,从而进行数据的传输

我们知道java中的四大抽象流分别为:InputStream、Reader、OutputStream、Writer,其中前两个为输入流,后两个为输出流,我们可以这样理解:输入流我们可以设置输入设备,默认的是键盘,输出流我们可以设置输出设备,默认的是显示器,下面举2个例子:

例子1:

Scanner sc = new Scanner(System.in); 

i = sc.nextInt();//即我们习惯的是输如设备是键盘

但是通过java中流的引用

FileInputStream fr = new FileInputStream(指定设备);

i = fr.read();  //通过流的引用,我们可以自己改变输入设备

例子2:

System.out.println(i);//即我们习惯的是输出设备是显示器

但是通过java中流的引用:

FileOutputStream fw = new FileOutputStream(指定设备);

fw.write(i);//通过流的引用,我们可以自己改变输出设备

因此当我们理解了java中流的意义之后,流的概念,以及输入输出方向也就不难理解了

 

 

 

 

转载地址:http://dbgzb.baihongyu.com/

你可能感兴趣的文章
数据结构 拓扑排序
查看>>
(PAT 1040) Longest Symmetric String (DP-最长回文子串)
查看>>
(PAT 1145) Hashing - Average Search Time (哈希表冲突处理)
查看>>
(1129) Recommendation System 排序
查看>>
PAT1090 Highest Price in Supply Chain 树DFS
查看>>
(PAT 1096) Consecutive Factors (质因子分解)
查看>>
(PAT 1019) General Palindromic Number (进制转换)
查看>>
(PAT 1073) Scientific Notation (字符串模拟题)
查看>>
(PAT 1080) Graduate Admission (排序)
查看>>
Play on Words UVA - 10129 (欧拉路径)
查看>>
mininet+floodlight搭建sdn环境并创建简答topo
查看>>
【linux】nohup和&的作用
查看>>
Set、WeakSet、Map以及WeakMap结构基本知识点
查看>>
【NLP学习笔记】(一)Gensim基本使用方法
查看>>
【NLP学习笔记】(二)gensim使用之Topics and Transformations
查看>>
【深度学习】LSTM的架构及公式
查看>>
【python】re模块常用方法
查看>>
剑指offer 19.二叉树的镜像
查看>>
剑指offer 20.顺时针打印矩阵
查看>>
剑指offer 21.包含min函数的栈
查看>>