Java入门—— IO流

1.File对象

1.1 file的介绍

File 类 就是当前系统中 文件或者文件夹的抽象表示


通俗的讲  就是 使用File对象 来操作我们电脑系统中的文件或者文件

学习File类 其实就是学习 如果通过file对象 对系统中的文件/文件夹进行增删改查

File文件类: 对我们系统上的文件和文件夹的一种抽取。
                   1.创建该类对象时的方法: File file=new File("文件的路径");
                    2.方法:
                    list();列出该目录下所有的子文件名.
                    listFiles();列出该目录下所有的子文件对象
                    getPath():得到文件的路径
                    createNewFile():创建文件
                    mkdir();创建单层目录
                    mkdirs():创建多层目录
                    exists():判断文件是否存在。
                    isDirectory():判断是否该文件为目录.
                    delete():删除文件

1.2 创建File对象

1. 磁盘准备一个目录AAA。以后对文件得操作都放在该目录下

1.3  增加操作

1.4 删除操作

1.5 修改操作

1.6 查询操作

经典题目: 用的方法的递归调用

 2. IO流

1. IO 表示有两个单词的缩写。
  I: Input 输入   O: Output 输出

2. IO的作用:就是对文件中的内容进行操作。
  输入: 读操作(读取文件的内容)   输出: 写操作(往文件中写内容)
 
3. IO流的分类:

 (1)根据流的方向:
    ---输入流: 程序可以从中读取数据的流。
    ---输出流: 程序能向其中写入数据的流。
    
 (2)根据流的单位:
    ---字节流: 以字节为单位传输数据的流
    ---字符流: 以字符为单位传输数据的流
 
 (3)根据功能
    ---节点流: 直接和文件进行交互
    ---处理流: 不是直接作用在文件上。
    
四个基本的流: 其他的流都是在这四个流的基础上进行扩展的
        InputStream:字节输入流
        OutputStream:字节输出流
        Reader: 字符输入流
        Writer: 字符输出流

 

 

 2.1 Writer字符输出流

它是所有字符输出流的跟类。---FileWriter类

 

上面每次往文件中写内容时 就会把原来的内容覆盖了。 如何追加内容

 

2.2 Reader字符输入流

它是所有字符输入流的根类  它的实现类有很多,我们使用FileReader实现类

 

   但是这种效率会很慢 因为每次只读取一个字符
   那么我们可以一次读取多个字符 并存入一个字符数组中

3.字节输出和输入流

3.1  :完成文件内容的复制功能

咱们能不能复制一个电影 图片 压缩文件等 上面的字符流没法对图片和电影 或压缩文件等进行操作。 它只能对文本进行操作  因为视频图片 这些都属于二进制。

3.2:字节输出流--OutputStream

它可以对任意文件进行操作,对文件进行输出操作。以字节为单位

它是所有字节输出流的父类,FileOutputStream

 

3.3:字节输入流--LnputStream

它可以对任意文件进行读操作 ,以字节为单位,它是所有字节输入流的父类

子类有FileInputStream

使用字节输入和输出流完成文件的复制功能:此方法可以复制图片/电影/视频

4.缓存流

 缓存流是在基础流[InputStream OutputStream Reader Writer]之上 添加了一个缓存池功能.
BufferInutStream  BufferOutputStream BufferReader  BufferWriter 提高IO的效率 降低IO的次数。

 

5.对象流--对java对象进行IO操作

  为什么需要对象流
  我们现在操作IO流的时候 都是将字符串读写操作 可不可以将java对象在文件中进行读写呢?

  可以的 Student st=new Student();对象
  将java对象进行读写操作 意义在于持久化信息  例如: 游戏存档。

  因为运行的时候 所有的数据都是在运行内存中的   持久化 将运行内存的数据 保存到硬盘上   

  存档(写)  读档(读)

1. 序列化: 把内存中的java对象存储到磁盘[网盘]的过程。
                 ---java对象所属的类必须实现序列化接口.implements Serializable
2. 反序列化: 把磁盘中的内容读取到java对象内存中的过程

总结:

1.  通过字符流完成文件的复制---->它只能复制文本文件
2.  字节流:---字节输入流和字节输出流。
3.  字节流 我们也可以完成文件的复制功能---它可以复制任意类型的文件.
4.  缓存流--->它基本流的基础上 添加了一个缓存池
5.  对象流: ObjectInputStream  ObjectOutputStream
     序列化:
     反序列化:

 

 

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值