相对路径:项目目录下的路径
绝对路径:计算机硬盘的路径
异常中的finally 不管捕没捕获异常最终都会执行finally
1、有多种分类方式:
一种方式是按照参照物进行分类 参照物是内存
往内存里去叫 输入 或者 叫做读
从内存中出来 叫做输出 或者叫做 写
2、另一种方式是按照读取数据不同进行分类:
字节流:
有的流是按照字节的方式读取数据 一次读取8个字节 等同于一次读取8个二进制位
(这种流是万能流 任何数据都可以读取 文本文件、视频、图片、声音)
字符流:
有的流是按照字符的方式读取的 ,一次只能读一个字符,这种流是为了方便读取普通文本文件而存在的
这种流不能读取声音 图片 视频等连word文件也无法读取
3、总结:
输入流、输出流
字节流、字符流
4、 java中的io流已经写好了 我们程序员不需要关心 我们最主要的是掌握在java中已经提供了哪些流 每个流的
特点是什么每个流的对象常用方法有哪些?
java所有的流都在:java.io*;包下。
java中主要还是研究
怎么new流对象
调用流对象的哪个方法是读 哪个方法是写
5、
java io流的四大家族:
四大家族首领:
java.io.Inputstream 字节输入流
java.io.Outputstream 字符输出流
java.io.Reader 字符输入流
java.io.Writer 字符输出流
四大家族的首领都是抽象类(abstract class)
所有的流都实现了:java.io.Closeable 接口 都是可关闭的 都会有close()方法
流是一个管道 这个是内存和硬盘之间的通道,用完之后一定要关闭不然会耗费(占用)很多资源,一定要养成好习惯用完流之后关闭
所有的输出流都实现了
java.io.Flushable接口,都是可刷新的,都有flush()方法
养成好习惯,输出流在最终输出之后,一定要记得flush()刷新一下这个刷新表示将通道、管道当中剩余未输出的数据强行输出完(清空管道!)刷新的作用就是清空管道。
如果没有flush()有可能会丢失数据
注意:在java中只要‘’类名‘’以Stream结尾的都是字节流 以Reader/Write结尾的都是字符流
6、java.io包下需要掌握的流有16个
文件专属:
java.io.FileInputStream
java.io.FileOutputStream
java.io.FileReader
java.io.FileWrite
转换流(将字节流转换成字符流)
java.io.InputStreamReader
java.io.OutputStreamWriter
缓冲流专属:
java.io.BufferedReader
java.io.BufferedWriter
java.io.BufferedInputStream
java.io.BufferedOutputStream
数据流专属:
java.io.DataInputStream
java.io.DataOutputStream
标准输出流:
java.io.PrintWriter
java.io.PrintStream
对象专属流:
java.io.ObjectInputStream
java.io.ObjectOutputStream
在idea中new 一个新的FileInputStream的时候文件路径会自动从\转换成\\因为\是转义字符
写成/斜杠也可以
如果读不到数据了会显示-1
浙公网安备 33010602011771号