JavaIo流总结
- 1.学习javaIo流前置知识
- 2.io流的继承体系
- 3.字节流
-
- 3.1 FileInputStrame
- 3.2 FileOutputStream
- 3.3 使用FileInputStrame 和 FileOutputStream完成文件的复制
- 3.4 BufferedInputStream
- 3.5 BufferedOutputStream
- 3.6 完成目录的深层拷贝
- 3.7 ByteArrayInputStream
- 4.字符流
-
- 4.1 FileReader
- 4.2 FileWriter
- 4.3 FileWriter和FileReader完成文件复制
- 4.4 字符缓存流BufferedRead
- 4.5 BufferedWriter
- 5.jdk1.8新特性-自动关闭流
-
- 6.数据流
- 6.1 DataInputStream
- 6.2 DataOutputStream
- 7.特殊流
-
- 7.1 标准输入流 InputStreamTest
- 7.2 PrintStream 字节打印流
- 7.3 PrintWriter 字符打印流
- 7.4 序列化
- 7.5 反序列化
1.学习javaIo流前置知识
1.先了解计算机存储单位的换算
8bit(只能存放1和0的单位,最小的存储单位)= 1Byte(字节)
Byte (B) = 8 bit
1 Kilo Byte (KB) = 1024 B
1 Mega Byte (MB) = 1024 KB
1 Giga Byte (GB)= 1024 MB
1 Tera Byte (TB)= 1024 GB
1 Peta Byte (PB) = 1024 TB
1 Exa Byte (EB) = 1024 PB
1 Zetta Byte (ZB) = 1024 EB
1 Yotta Byte (YB) = 1024 ZB
1 Bronto Byte (BB) = 1024 YB
1 Nona Byte (NB) =1024 BB
1 Dogga Byte (DB) =1024 NB
1 Corydon Byte (CB) = 1024 DB
1 Xero Byte (XB) = 1024 CB
2.io流的分类
1.按照功能来区分
- 字节流:节流操作的单元是数据单元是8位的字节
- 字符流:字符流操作的是数据单元为16位的字符
2.按照输出方向来区分
- 输入流:往内存中读叫做输入流,也就是将磁盘上的文件读取到内存中
- 输出流:将内存中的数据输出到磁盘上就叫做输出流
File类的常用方法
在java中,所有的文件路径和都被抽象为一个叫做File的类,这个类是用来操作我们电脑中的文件的。
public String getAbsolutePath() :返回此File的绝对路径名字符串。
注意:无论路径是绝对的还是相对的,getAbsolutePath方法返回的都是绝对路
public String getPath() :将此File转换为路径名字符串, 获取的构造方法中传递的路径
注意:将此File转换为路径名字符串。
public String getName() :返回由此File表示的文件或目录的名称。
public long length() :返回由此File表示的文件的长度。
注意:
文件夹是没有大小概念的,不能获取文件夹的大小
如果构造方法中给出的路径不存在,那么length方法返回0
public boolean exists() :此File表示的文件或目录是否实际存在。
public boolean isDirectory() :此File表示的是否为目录。(判断构造方法的路径是否以文件夹结尾)
public boolean isFile() :此File表示的是否为文件。(判断构造方法的路径是否以文件结尾)
public boolean createNewFile() :当且仅当具有该名称的文件尚不存在时,创建一个新的空文件。
public boolean delete() :删除由此File表示的文件或目录。(不走回收站,谨慎操作!)
public boolean mkdir() :创建由此File表示的目录。
public boolean mkdirs() :创建由此File表示的目录,包括任何必需但不存在的父目录。
public String[] list() :返回一个String数组,表示该File目录中的所有子文件或目录。
public File[] listFiles() :返回一个File数组,表示该File目录中的所有的子文件或目录。
File的案例实战:查询某个路径下的文件是否存在
2.io流的继承体系

我们需要知道四个顶级的接口
字节流
- java.io.InputStream 字节输入流
- java.io.OutputStream 字节输出流
字符流
- java.io.Reader 字符输入流
- java.io.Writer 字符输出流
所有的流(输入输出)都实现了 java.io.Closeable接口,都是可关闭的,都有close()方法。
流毕竟是一个管道,这个是内存和硬盘之间的通道,用完之后一定要关闭,不然会耗费(占用)很多资源。养成好习惯,用完流一定要关闭。
所有的输出流都实现了 java.io.Flushable接口,都是可刷新的,都有flush()方法。
养成一个好习惯,输出流在最终输出之后,一定要记得flush()
刷新一下。这个刷新表示将通道/管道当中剩余未输出的数据
强行输出完(清空管道!)刷新的作用就是清空管道。
注意:如果没有flush()可能会导致丢失数据。
3.字节流
3.1 FileInputStrame
字节流是万能流,既可以读取文本,也可以读取二进制文件,比如视频,图片等文件。
他可以三种读取方式:
案例:读取一个文件中的文本内容,并且输出到控制台
3.2 FileOutputStream
案例:将内存中的字符串写入到文本中
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!