Day16_92_Java IO 基础概念
Java IO 基础概念
流根据方向分为 输入流 和 输出流。 注意 : 输入和输出是相对与内存而言的,从内存出来就是输出,到内存中去就是输入。
输入叫做 "读" , 输出叫做 "写"。
输入流叫做 InputStream 或者 Read ; 输出流叫做 OutputStream 或者 Write。
输入流是从文件读取数据,是一个拉取数据的过程; 输出流是将数据写入到文件中,是一个推送数据的过程。
一个Java程序从本地读取(拉取)字节叫做字节输入流; 一个Java程序将字节数据写入并保存到硬盘中叫字节输出流; 从内存中读取字符文件叫字符输入流(Read), 输出字符数据叫字符输出流(write).
流根据读取数据的方式不同分为 字节流 和 字符流,字节流是按照字节的方式读取的; 字符流是按照字符的方式读取的,一次读取两个字节,在java中一个字符占两个字节。
字节流适合读取 视频、声音、图片等二进制文件; 字符流适合读取纯文本文件。
Java 语言中所有的字节流都以Stream结尾; 所有的字符流都含有Reader或Writer。
* IO继承结构图
- 字节流

- 字符流

- 需要掌握的16个流
- java.io.*;
import java.io.InputStream; 抽象类
import java.io.OutputStream; 抽象类
import java.io.FileInputStream; 字节流输入
import java.io.FileOutputStream; 字节流输出
import java.io.FilterInputStream;
import java.io.FilterOutputStream;
import java.io.FileReader; 字符流输入
import java.io.FileWriter; 字符流输出
import java.io.BufferedInputStream; 带有缓冲区的字节流输入
import java.io.BufferedOutputStream; 带有缓冲区的字节流输出
import java.io.BufferedReader; 带有缓冲区的字符流输入
import java.io.BufferedWriter; 带有缓冲区的字符流输出
import java.io.DataInputStream; 读取数据
import java.io.DataOutputStream;
import java.io.ObjectInputStream; 读取对象
import java.io.ObjectOutputStream;
转换流:
import java.io.InputStreamReader; 将字节输入流转换为字符输入流
import java.io.OutputStreamWriter; 将字节输出流转换为字符输出流
import java.io.PrintWriter;
import java.io.PrintStream; 标准的输出流,默认输出到控制台
Day16_92_Java IO 基础概念的更多相关文章
- JavaBean 基础概念、使用实例及代码分析
JavaBean 基础概念.使用实例及代码分析 JavaBean的概念 JavaBean是一种可重复使用的.且跨平台的软件组件. JavaBean可分为两种:一种是有用户界面的(有UI的):另一种是没 ...
- Java面试题精选(一)基础概念和面向对象
-- 基础概念和面向对象 -- 全程将为大家剖析几大部分内容,由于学习经验有限,望大家谅解并接受宝贵的意见: 基础概念部分 ★★ : 常出现的高频率单词的区别理解(异常. ...
- 分布式强化学习基础概念(Distributional RL )
分布式强化学习基础概念(Distributional RL) from: https://mtomassoli.github.io/2017/12/08/distributional_rl/ 1. Q ...
- 一步步Cobol 400 上手自学入门教程01 - 基础概念
先学习基础概念 1.COBOL字符:包含: User-defined words 用户定义字符 System-names Reserved words 关键字 2.用户定义字符User-defin ...
- 【spring揭秘】1、关于IOC的基础概念
1.基础概念 IOC有三种注入方式: 1.构造方法注入,就是通过构造方法进行实例化成员属性对象,优点是实现对象之后直接就可以使用,但是参数过多也是个麻烦 2.setter方法注入,实现相应的sette ...
- 第214天:Angular 基础概念
一.Angular 简介 1. 什么是 AngularJS - 一款非常优秀的前端高级 JS 框架 - 最早由 Misko Hevery 等人创建 - 2009 年被 Google 公式收购,用于其多 ...
- ELK&ElasticSearch5.1基础概念及配置文件详解【转】
1. 配置文件 elasticsearch/elasticsearch.yml 主配置文件 elasticsearch/jvm.options jvm参数配置文件 elasticsearch/log4 ...
- Exynos4412 IIC总线驱动开发(一)—— IIC 基础概念及驱动架构分析
关于Exynos4412 IIC 裸机开发请看 :Exynos4412 裸机开发 —— IIC总线 ,下面回顾下 IIC 基础概念 一.IIC 基础概念 IIC(Inter-Integrated Ci ...
- nginx架构与基础概念
1 Nginx架构 Nginx 高性能,与其架构有关. Nginx架构: nginx运行时,在unix系统中以daemon形式在后台运行,后台进程包含一个master进程和多个worker ...
随机推荐
- 1.代码规范之 if 语句编写
最近在看项目代码的时候, 看到需要判断的地方,出现了if的多重嵌套, 甚至是出现了十几层的嵌套, 代码的阅读性非常之差. 简单的举个例子(这里只是两层的嵌套): public class demo ...
- OLAP分析
OLAP分析 1 视频教程 视频教程 如果对资源下载.分析操作有疑问,直接跟着视频做一遍即可. 2 数据集合说明 FoodMart,其为一家食品连锁店经营产生的数据存放的数据库,包括销售数据.库存数据 ...
- jar下载慢,maven配置国内仓库
使用 maven 下载 jar 包速度会很慢,原因是 maven 默认的仓库地址是国外的,所以速度很慢,解决这个问题我们只需要修改 maven 仓库地址即可 maven 下载 jar 包时会优先去 ~ ...
- 40. 组合总和 II + 递归 + 回溯 + 记录路径
40. 组合总和 II LeetCode_40 题目描述 题解分析 此题和 39. 组合总和 + 递归 + 回溯 + 存储路径很像,只不过题目修改了一下. 题解的关键是首先将候选数组进行排序,然后记录 ...
- POJ-1511(Dijkstra+优先队列优化+向前星)
Invitation Cards POJ-1511 从这道题我还是发现了很多的问题,首先就是快速输入输出,这里的ios::---这一行必须先放在main函数第一行,也就是输入最开始的前面,否则系统疯狂 ...
- pytorch(13)卷积层
卷积层 1. 1d/2d/3d卷积 Dimension of Convolution 卷积运算:卷积核在输入信号(图像)上滑动,相应位置上进行乘加 卷积核:又称为滤波器,过滤器,可认为是某种模式,某种 ...
- roarctf_2019_realloc_magic
目录 roarctf_2019_realloc_magic 总结 题目分析 checksec 函数分析 解题思路 初步解题思路 存在的问题 问题解决方案 最终解决思路 编写exp exp说明 roar ...
- Windows下常用测试命令
(1)ping 127.0.0.1 (测试本地网卡,127.0.0.1是本地循环地址,如果本地址无法Ping通,则表明本地机TCP/IP协议不能正常工作) (2)ping 127.0.0.1 - ...
- C# 基础 - 日志捕获二使用 log4net
引入 log4net.dll 项目->添加->新建项->应用程序配置文件,命名为 log4net.config,并把属性的复制到输出目录设置为 如果较新则复制,后续客户端需要读取在 ...
- Intellij IDEA实用插件Lombok
使用@Data注解后 可以不用给属性添加get.set方法也可以使用get.set方法,但是必须添加lombok Plugin插件 1 打开设置Setting,选中Plugins,搜索并安装Lombo ...