关于Java的IO流

1.IO流概述

IO可以完成硬盘文件的读和写

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
IDEA中的默认路径
在这里插入图片描述

2.FileInputStream

  1. read()方法 (读一个字节,返回字节的内容)
  2. read(bate[ ])方法 (都一个字节数组,返回读取的字节数量)

在这里插入图片描述在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3.FileOutputStream

输出流执行完之后需要立马进行刷新(清空管道),否则容易数据丢失

在这里插入图片描述
在这里插入图片描述

3.文件拷贝

在这里插入图片描述

在这里插入图片描述

进行拷贝时 ,读完之后,读到的内容存到了 内存中的byte数组里;需要立马进行写,写的时候是将byte数组里的内容写入硬盘指定的文件中

在这里插入图片描述

输出流/输入流执行完之后 需要在finally里进行手动关闭
输出流与输入流的关闭需要分开try(一起try的时候,一个出现异常,会影响另外一个流的关闭)

在这里插入图片描述

4.FileReader

是字符输入流 ,针对char数组进行操作的,可指定每次读几个字符。
读完之后需要调用 string(#,#,#)构造方法,将读到的内容转成字符串类型,读多少转多少。
只能读取普通文本(word文档不属于普通文本),java文件是普通文本文件(能用记事本进行编辑的都是普通文本文件)

在这里插入图片描述

5.BufferedReader

带有自动缓冲区的字符输入流,不需要自定义char数组,自带缓冲。

1…readLine()方法

//实现一行一行读取
//.readLine()方法
package IOStreamTest;
import java.io.*;

public class main {
    public static void main(String[] args) throws IOException {
    	//需要使用节点流进行一次包装
        FileReader reader=new FileReader("temp2.txt");
        //当一个流的构造方法中需要一个流的时候,这个被传入的流叫做:节点流
        //外部负责包装的流称为“ 包装流”,也叫“处理流”
        BufferedReader in = new BufferedReader(reader);
        String s=null;
        while ((s=in.readLine())!=null){
            System.out.println(s);
        }
          in.close();//只需要关闭包装流 ,内部的节点流不需要关闭(会内部源代码中进行自动关闭)
    }
}

6.转换流(InputStreamReader)

为了解决BufferedReader 的构造方法只能使用字符流时使用
在这里插入图片描述
简写方法如下:
在这里插入图片描述

7.PrintStream(标准的字节输出流)

在这里插入图片描述

将输出日志 输出到指定文件
在这里插入图片描述
**拓展:自定义日志
在这里插入图片描述
在这里插入图片描述
**

8.File类

是文件和目录路径名的抽象表达形式

9.序列化与反序列化

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
一次性序列化多个对象
在这里插入图片描述

10.transient关键字(游离的)

这个关键字 表示不参与序列化

在这里插入图片描述

11.序列化版本号

在这里插入图片描述

java虚拟机识别一个类时 ,先判断类名,如果类名一致,再通过序列化版本号区分
建议创建类时 ,手动设置序列化版本号

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

12.IO流和Properties(属性)的联合使用

一个很好的设计理念:以后经常改变的数据,可以单独写到一个文件中,使用程序动态读取,将来只需要修改这个文件的内同,Java代码不需要改动,不需要重新编译,服务器也不需重启。就可以拿到动态信息。

类似以上的机制的这种文件被称为配置文件,并且当配置文件的内容格式是:
key1 = value
key2 = value
的时候,我们把这种配置文件叫做属性配置文件
java 规范中有 要求 :属性配置文件以.Properties结尾,但这个不是必须的。

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值