java I/O

Posted on 2021-11-24 18:18  一只小猪猪  阅读(42)  评论(0)    收藏  举报

相对路径:项目目录下的路径

绝对路径:计算机硬盘的路径

异常中的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

 

 

 

 

 

 

  

 

博客园  ©  2004-2026
浙公网安备 33010602011771号 浙ICP备2021040463号-3