JavaIo流总结

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流的继承体系

JavaIo流总结此图在我在网上找的,感谢这位网友的图。 https://blog.csdn.net/weixin_44411569

我们需要知道四个顶级的接口

字节流

  • 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

案例:将内存中的字符串写入到文本中

来源:野生java研究僧

声明:本站部分文章及图片转载于互联网,内容版权归原作者所有,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2022年4月1日
下一篇 2022年4月2日

相关推荐