| |
|
开发:
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 exists():判断文件是否存在 getName(); |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
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- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |