IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Java知识库 -> I/O复习 -> 正文阅读

[Java知识库]I/O复习

一、什么是I\O

? ? ? ? I: Input

? ? ? ? O:Output

? ? ? ? 通过IO可以完成硬盘文件的读写

二、io流的分类

? ? ? ? 有多种分类方式

? ? ? ? ? ? ? ? 一种是按照流的方向进行分类

? ? ? ? ? ? ? ? ? ? ? ? 一内存作为参照物

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 往内存中去,叫输入(Read)

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 从内存中出来,叫输出(Write)

? ? ? ? 另一种方式是按照读取数据方式不同进行分类

? ? ? ? ? ? ? 字节流:? 有的流是按照字节的方式读取数据,一次读取一个字节byte,等同于一次读取8个二进制位,这种流是万能的,什么类型的文件都可以读取

????????假设文件file1.txt,采用字符流的话是这样读的:

? ? ? ? ? ? ? ? a中国bc张三fe

? ? ? ? ? ? ? ? 第一次读:一个字节,正好读到‘a’

? ? ? ? ? ? ? ? 第二次读:一个字节,正好读到‘中’字符的一半

????????????????第三次读:一个字节,正好读到‘中’字符的另一半

? ? ? ? ? ? ? ? 字符流:按照字符的方式读取数去,一次读取一个字符,这种流是为了方便读取普通文本文件而存在的,这种流不能读取:图片、声音等,只能读取纯文本,连Word文件都不能读取(Word不是普通文档),只能读取*.txt

? ? ? ? 假设文件file1.txt,采用字符流的话是这样读的:

? ? ? ? ? ? ? ? a中国bc张三fe

? ? ? ? ? ? ? ? 第一次读:‘a’字符(‘a’字符在window中占用1个字符)

????????????????第二次读:‘中’字符(‘中’字符在window中占用1个字符)

? ? ? ? 综述:

? ? ? ? ? ? ? ? 输入流、输出流

? ? ? ? ? ? ? ? 字节流、字符流

三、Java中IO流都写好了,我们程序员不需要关心我们最主要还是掌握在java中已经提供了哪些流,每个流的特点是什么,每个流的常用方法是什么。

? ? ? ? java中所有的流都是在java.io下

? ? ? ? java中主要还是研究:

? ? ? ? ? ? ? ? 怎么new流对象

? ? ? ? ? ? ? ? 记住流对象的读写方法

四、IO流的四大家族

? ? ? ? java.io.InputStream? ? ? ? 字节输入流

????????java.io.OnputStream? ? ? ? 字节输出流

????????java.io.Reader? ? ? ? 字符输入流

????????java.io.Writer? ? ? ? 字符输出流

????????

? ? ? ? 所有的流都是可关闭的,都有close()方法,用完流一定要关闭

? ? ? ? 所有的输出流都实现了:

? ? ? ? ? ? ? ? java.io.Flushable接口,都是可刷新的,都有flush()方法。

? ? ? ? ? ? ? ? 刷新一下,表示将通道/管道东中剩余未输出的数据强行输出完(清空管道)。

? ? ? ? 注意:如果没有flush()可能会导致丢失数据

注意:以Stream结尾的都是字节流,以Reader?Writer结尾都是字符流

五、java.io中需要掌握的流有16个:

文件专属:

? ? ? ? java.io.FileInputStream(重点)

????????java.io.FileOutputStream(重点)

????????java.io.FileReader

????????java.io.FileWriter

转换流:(将字节流转换成字符流)

????????java.io.InputStreamReader

????????java.io.OutputStreamWriter

缓冲流专属:

????????java.io.BufferedReader

????????java.io.BufferedWriter

????????java.io.BufferedInputStream

????????java.io.BufferedOutputStream

数据流专属:

????????java.io.DateInputStream

????????java.io.DateOutputStream

标准输出流:

????????java.io.PrintWriter(重点)

????????java.io.PrintReader(重点)

对象专属流:

????????java.io.ObjectInputStream(重点)? 序列化? ?序列化的对象需要实现

Serializable接口

????????java.io.ObjectOutputStream(重点) 反序列化

注意:如果对象中的某个变量有transient关键字,则这个变量不参与序列化

六、File 类

常用方法

?boolean createNewFile();在指定路径创建文件,如果文件已经存在,则不创建,返回false.输出流
???????????????????????? 对象一旦创建,如果文件存在,则会覆盖。
?boolean mkdir():创建一级文件夹
?boolean mkdirs():创建多级文件夹

?boolean exists():判断文件是否存在
??? isFile();
??? isDirectory();
??? isHidden();

getName();
?getPahth();//获取路径
?getAbsoluteFile();//获取绝对路径封装成文件对象
?getAbsolutPath();//获取绝对路径
?getParent();

  Java知识库 最新文章
计算距离春节还有多长时间
系统开发系列 之WebService(spring框架+ma
springBoot+Cache(自定义有效时间配置)
SpringBoot整合mybatis实现增删改查、分页查
spring教程
SpringBoot+Vue实现美食交流网站的设计与实
虚拟机内存结构以及虚拟机中销毁和新建对象
SpringMVC---原理
小李同学: Java如何按多个字段分组
打印票据--java
上一篇文章      下一篇文章      查看所有文章
加:2021-09-05 10:40:31  更:2021-09-05 10:42:37 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/23 13:26:08-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码