java学习笔记(重点截图)

本文详细介绍了Java中的IO流体系,包括字节流和字符流的基本概念及使用方法,如FileInputStream、FileOutputStream、BufferedReader等类的应用,并探讨了序列化流、转换流的功能与操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

字符串数组集合互相转换:

字符串获取方法:

 异常处理的三种方式:

 一次往list集合中添加多条数据:

Collections使用方法:

集合框架介绍:

集合对比:

 

IO流架构图:

 字符缓冲流的使用:

字节流使用方法:

 序列化操作流:

 IO流体系笔记:

IO流体系(Input和Output)
    Input: 将磁盘中的数据读到内存中
    Output:将内存中的数据写入磁盘中
一.字节流
    1.字节输出流OutputStream --> FileOutputStream
        写字节数据:
            write(int b)方法,每次写一个字节的数据
            write(byte[] b)方法,每次写一个字节数组的数据
            write(byte[] b, int off, int len)方法,每次写指定长度字节数组的数据
        注意:
            1)数据需要追加续写,在构造方法中加true
            2)写出需要换行,加\r\n
            
    2.字节输入流InputStream -->FileInputStream
        读字节数据:
            read()方法,每次读一个字节的数据
            read(byte[] b)方法,每次读一个字节数组的数据
        注意:
            读取到文件末尾,返回-1
            
二.字符流
    1.字符输出流Writer -->FileWriter
        写字符数据:
            write(int b)方法,每次写一个字符的数据
            write(char[] chs)方法,每次写一个字符数组的数据
            write(char[] chs, int off, int len)方法,每次写指定长度字符数组的数据
            write(String str)方法:写一个字符串
            write(String str, int off, int len)方法:每次写指定长度字符串的数据
        注意:
            1)未调用close方法,数据只是保存到了缓冲区,并未写出到文件中
            2)如果不想关流,可以使用flush方法刷新缓冲区
            
    2.字符输入流Reader -->FileReader
        读字符数据:
            read()方法,每次读一个字符的数据
            read(char[] chs)方法,每次读一个字符数组的数据
            read(char[] cbuf, int off, int len) 将字符读入数组的一部分。
        
三.属性集    
     Properties:每个键及其对应值都是一个字符串
        存储方法
            setProperty(String key, String value) : 保存一对属性
            getProperty(String key) :获取指定的键对应的属性值
            Set<String> stringPropertyNames() :获取所有键的名称
        与流相关的方法:                        
            load(InputStream is):  用字节输入流读取文件中的键值对
            store(OutputStream os):用字节输出流将键值对写入文件中
            
            Properties prop = new Properties();
            prop.store(new FileOutputStream("prop.txt"),"test");
            
            prop.load(new FileReader("prop.txt"));
            Set<String> set = prop.stringPropertyNames();

            
四.缓冲流
    1.字节缓冲输出流:BufferedOutputStream
        BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream("bos.txt"));
        bos.write();
    2.字节缓冲输入流:BufferedInputStream
        BufferedInputStream bis = new BufferedInputStream(new FileInputStream("bis.txt"));
        int len = bis.read();
    
    3.字符缓冲流输出流:BufferedWriter
        BufferedWriter bw = new BufferedWriter(new FileWriter("bw.txt"));
        bw.write();
        bw.newLine();
    4.字符缓冲流输入流:BufferedReader        
        BufferedReader br = new BufferedReader(new FileReader("br.txt"));
        String line = br.readLine();
    
五.转换流
    1.OutputStreamWriter:写字节,使用指定的字符集将字符编码为字节
        OutputStreamWriter osw = new OutputStreamWriter(new FileOutputStream("out.txt") , "GBK");
        osw.write("你好");
        
    2.InputStreamReader: 读字节,使用指定的字符集将字节解码为字符
        InputStreamReader isr = new InputStreamReader(new FileInputStream("in.txt") , "GBK");
        int len = isr.read();
        
        
六.序列化流
    1.ObjectOutputStream类:序列化,将对象转换成字节写入文件存储
        ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream("employee.txt");
        out.writeObject(obj);
        
    2.ObjectInputStream类:反序列化,读取文件中的字节重构成对象
        ObjectInputStream ois = new ObjectInputStream(new FileInputStream("obj.txt"));
        Object obj = ois.readObject();
        
    3.注意:
        1)一个对象要想序列化,这个类必须实现Serializable接口
        2)如果类中某个属性不需要序列化,使用transient关键字修饰
        

迭代器:iterator
比较器:comparator
过滤器:filter
监听器:listener
适配器:adapter

数据:核心
变量:只能存储一个数据
数组:可以存储多个数据,但是长度固定
集合:可以存储多个数据,长度可以改变,但是只能临时存储(内存中)
IO流:可以存储多个数据,长度可以改变,并且可以永久存储(磁盘中),但是数据不方便操作数据库:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值