JAVA IO操作中的IN和OUT问题
2019独角兽企业重金招聘Python工程师标准>>>
OutputStream和InputStream的区别
很多人刚学习程序流一章的时候,就是搞不清楚In和Out,不知道什么时候用in什么时候用out,所以一部分人采取死记硬背的方式,诸如如下这位:
BufferedReader in = new BufferedReader(new InputStreamReader(new FileInputStream("infilename")));
不管你从磁盘读,从网络读,或者从键盘读,读到内存,就是InputStream。
写文件
BufferedWriter out = new BufferedWriter(new OutputStreamWriter(new FileOutputStream("outfilename")));
不管你写倒磁盘,写到网络,或者写到屏幕,都是OuputStream。
那么有什么好方法不用背就能记住呢,即使是反应稍微慢点,但是绝对不会错的方法呢?
好吧,那我就来说说,老程序员可以关闭该页面了!
我们所说的流,都是针对内存说的,比如为什么打印到屏幕上就是System.out.println();而从屏幕等待用户输入的却是System.in呢?因为对于内存来说,把字符串打印到屏幕上是从内存流向屏幕这个显示器的,也就是输出,而从屏幕等待用户输入呢?就是等待键盘将字符输入到内存中。
所以,你根本就不用死记硬背,当你遇到IO的时候,就想两件事,第一,我的内存是中心,第二看看流的方向(矢量)!
好吧,那么往硬盘上写文件是out还是in呢?别一看到“写”文件你就说in,那是望文生义,你看,写文件的流向,是 内存---------->硬盘 内存为中心,到硬盘,OK 用out 那么就是FileOutputStream、BufferedOutputStream 等等
那读文件呢?是 内存<---------------硬盘 那么就是in了 , 看清楚数据的流向就OK!
那我访问网络,看网页是什么呢 网络--------------->内存 是in 因为我们访问页面是要抓取该页面得一个html文件,那我要是在网络上输入帐号密码登陆呢? 是不是内存的东西要写到该服务器上呢,所以当然是out了!
同样socket编程用到更多的IO,这里分别用Server(服务器端)和Client(客户端)来说明
Server: 遇到请求,网络----->内存 IN 服务器应答, 内存------->网络 OUT
----------------------------------------------------------------------------------------------
Client: 请求服务, 内存----->网络 OUT 服务器应答, 网络------->内存 IN
被搞糊涂了?那么你先别想太多,只是想是内存的数据出去了就是out 外设的东西到内存了就IN了
转载于:https://my.oschina.net/u/1464678/blog/212790
JAVA IO操作中的IN和OUT问题相关推荐
- java io运用_Java IO相关使用
date: 2020-06-14 14:42:22 updated: 2020-08-21 17:35:45 Java IO相关使用 1. 文件 创建 File 对象的三种方式 一个路径名:File( ...
- java 常用类库_JAVA(三)JAVA常用类库/JAVA IO
成鹏致远 |lcw.cnblog.com|2014-02-01 JAVA常用类库 1.StringBuffer StringBuffer是使用缓冲区的,本身也是操作字符串的,但是与String类不同, ...
- Java IO(BIO, NIO, AIO) 总结
文章转载自:JavaGuide 目录 BIO,NIO,AIO 总结 同步与异步 阻塞和非阻塞 1. BIO (Blocking I/O) 1.1 传统 BIO 1.2 伪异步 IO 1.3 代码示例 ...
- java io流区别_Java中IO流的分类和BIO,NIO,AIO的区别
到底什么是IO 我们常说的IO,指的是文件的输入和输出,但是在操作系统层面是如何定义IO的呢?到底什么样的过程可以叫做是一次IO呢? 拿一次磁盘文件读取为例,我们要读取的文件是存储在磁盘上的,我们的目 ...
- Java IO(五)——字符流进阶及BufferedWriter、BufferedReader
一.字符流和字节流的区别 拿一下上一篇文章的例子: 复制代码 复制代码 1 package com.demo.io; 2 3 import java.io.File; 4 import java.io ...
- Java - IO流学习笔记
1.文件和文件夹 内存中存放的数据信息在计算机关机后就会消失,如果想要长久的保存数据,就需要使用到光盘.硬盘等设备,为了便于数据的管理以及检索,引入了"文件"的概念.一篇文章,一个 ...
- Java IO完全总结(转载) --- 重点在源码分析
转载自https://blog.csdn.net/baobeisimple/article/details/1713797 个人认为前面对于输入输出流(超类)的 继承结构,仅仅作为参考知识了解,如果想 ...
- java IO学习心得
File类: 在整个io包中,唯一表示与文件有关的类就是File类.使用File类可以进行创建或者删除文件等常用的操作.要想使用File类,则首先要观察File类的构造方法,此类的常用构造方法如下: ...
- Java IO框架之BIO、NIO、AIO
我是傲骄鹿先生,沉淀.学习.分享.成长. 如果你觉得文章内容还可以的话,希望不吝您的「一键三连」,文章里面有不足的地方希望各位在评论区补充疑惑.见解以及面试中遇到的奇葩问法 目录 一.概述 二.BIO ...
最新文章
- 引人遐想,用 Python 获取你想要的 “某个人” 摄像头照片
- python运行慢-Python运行效率慢?因为你不知道这六大窍门!
- android linux内核开发环境,定制Android 4.2.2开发环境
- ejb 2.0 3.0_EJB 3.0注入和查找简介
- react jquery_2019年React简介(面向仅了解jQuery的人们)
- 作业帮:字符串反转(头部插入)
- macos big sur永久关闭final cut Pro通知的技巧
- 基于Ubuntu的ESP32平台搭建
- webservice框架 java_JAVA开发Web Service几种框架介绍
- python numpy 中linspace函数
- linux 远程22端口打开,kali如何手动打开22端口
- chrome操作系统_如何在Chrome和Chrome操作系统上使用Google Play电影
- 文档型非关系数据库MongoDB经验总结
- Anonympy——使用Python进行数据匿名化
- react中input输入框显示字数
- 字符串和时间转换sql
- Jsoup-爬取实战
- 人工智能的影响是大众还是小众,对我们的职业有什么影响?
- 这三种人不适合“裸辞”!
- ft232h引脚_基于FT2232H的USB-RS232转换模块设计
热门文章
- 安全配置交换机端口 提高网络安全性
- nagios全攻略(三)----使用插件监控更多信息
- DHCP Snooping的作用
- PostgreSQL 10.0 preview 功能增强 - 后台运行(pg_background)
- 介绍两个Eclipse插件: Implementors Call Hierarchy
- Thread Dump 和Java应用诊断(转)
- 抓取apache2的进程pid
- Linux下Tomcat重新启动
- linux symbolic link attack tutorial
- C#GDI+图像处理