Day 56

_字节流写数据加异常处理

  1. finally:在异常处理是提供finally块来执行说有的清除操作。比如说IO流中的释放资源

    特点:被finally控制的语句一定会执行,除非排除JVM退出

    try{
        可能出现的异常代码;
    }catch(异常类名 变量名){
        异常的处理代码;
    }finally{
        执行所有清除操作
    }
    
  2. package demo12;
    
    import java.io.File;
    import java.io.FileOutputStream;
    import java.io.IOException;
    
    public class _IO_Demo_01 {
        public static void main(String[] args) {
            /*
                try{
                    可能出现的异常代码;
                }catch(异常类名 变量名){
                    异常的处理代码;
                }finally{
                    执行所有清除操作
                }
             */
            FileOutputStream fos = null;
            try {
                fos = new FileOutputStream("C:\\Users\\Alvord\\Desktop\\markdown学习\\code\\studyProject\\src\\demo12\\note_01");
                fos.write("hello world".getBytes());
            } catch (IOException e) {
                e.printStackTrace();
            }
            finally {
                try {
                    fos.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }
    }
    ==========================================
    
    Process finished with exit code 0
    ******************************************
    hello world
    

_字节流读数据(一次读一个字节数据)

  1. 需求:把文件note_02.txt中的内容读取出来在控制台输出

    • FileInputStream :从文件系统中的文件获取输入字节
    • FileInputStream(String name):通过打开与实际文件的连接来创建与i个FileInputStream,该文件由文件系统中的路径名name命名
  2. 使用字节输入流读取数据的步骤:

    • 创建字节输入流对象
    • 调用字节输入流对象的读取数据的方法
    • 释放资源
  3. package demo12;
    
    import java.io.FileInputStream;
    import java.io.IOException;
    
    public class _IO_Demo_02 {
        public static void main(String[] args) {
            /*
            需求:把文件note_02.txt中的内容读取出来在控制台输出
    
            - FileInputStream :从文件系统中的文件获取输入字节
            - FileInputStream(String name):通过打开与实际文件的连接来创建与i个FileInputStream,该文件由文件系统中的路径名name命名
    
            使用字节输入流读取数据的步骤:
                - 创建字节输入流对象
                - 调用字节输入流对象的读取数据的方法
                - 释放资源
             */
            FileInputStream fis = null;
            try {
                fis = new FileInputStream("C:\\Users\\Alvord\\Desktop\\markdown学习\\code\\studyProject\\src\\demo12\\note_02");
                /*
                if (fis != null) {
    
                    int read = fis.read();
                    System.out.print(read);
                    System.out.println(" "+(char)read);
    
                    read = fis.read();
                    System.out.print(read);
                    System.out.println(" "+(char)read);
                }
                 */
                // 如果到达文件末尾,会返回-1
                /*
                if (fis != null) {
                    int read = fis.read();
                    while (read != -1) {
                        System.out.print(read);
                        System.out.println(" " + (char) read);
                        read = fis.read();
                    }
                }
                 */
    
                // 优化上面的程序
                int read;
                while ((read = fis.read()) != -1) {
                    System.out.print(read);
                    System.out.println(" "+(char)read);
                }
            } catch (IOException e) {
                e.printStackTrace();
            }
            try {
                fis.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }
    ==================================
    97 a
    98 b
    99 c
    100 d
    101 e
    102 f
    103 g
    
    Process finished with exit code 0
    **********************************
    abcdefg
    

_字节流复制文本文件

  1. 需求:把一个TXT文本文档复制到当前模块目录下

  2. 分析:复制文本文件,其实就是把文本文件的内容从一个文件中读取出来(数据源),然后写入另一个文件中(目的地)

  3. 思路:

    • 根据数据源创建字节输入流对象
    • 根据目的地创建字节输出流对象
    • 读写数据,复制文本文件(一次读取一个字节,一次写入一个字节)
    • 释放资源
  4. package demo12;
    
    import java.io.FileInputStream;
    import java.io.FileOutputStream;
    import java.io.IOException;
    
    public class _IO_Demo_03 {
        public static void main(String[] args) {
            /*
            需求:将note_03复制一份保存到当前的模块下
    
            思路:
            - 根据数据源创建字节输入流对象
            - 根据目的地创建字节输出流对象
            - 读写数据,复制文本文件(一次读取一个字节,一次写入一个字节)
            - 释放资源
             */
    
            FileInputStream fis = null;
            FileOutputStream fos = null;
            try {
                fis = new FileInputStream("C:\\Users\\Alvord\\Desktop\\markdown学习\\code\\studyProject\\src\\demo12\\note_03");
                fos = new FileOutputStream("C:\\Users\\Alvord\\Desktop\\markdown学习\\code\\studyProject\\src\\demo12\\note_04");
                // 读取note_03中的数据
                int read;
                while ((read = fis.read()) != -1) {
                    fos.write(read);
                }
            } catch (IOException e) {
                e.printStackTrace();
            }
            try {
                fis.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
            try {
                fos.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }
    ========================================
    
    Process finished with exit code 0
    ****************************************
    note_03.txt
        声表面滤波器是在一块具有压电效应的材料基片上蒸发一层金属膜,然后经光刻,在两端各形成一对叉指形电极组成。
    当在发射换能器上加上信号电压后,就在输入叉指电极间形成一个电场使压电材料发生机械振动(即超声波)以超声波的形式向左右两边传播,
    向边缘一侧的能量由吸声材料所吸收。在接收端,由接收换能器将机械振动再转化为电信号,并由叉指形电极输出。
    note_04.txt
        声表面滤波器是在一块具有压电效应的材料基片上蒸发一层金属膜,然后经光刻,在两端各形成一对叉指形电极组成。
    当在发射换能器上加上信号电压后,就在输入叉指电极间形成一个电场使压电材料发生机械振动(即超声波)以超声波的形式向左右两边传播,
    向边缘一侧的能量由吸声材料所吸收。在接收端,由接收换能器将机械振动再转化为电信号,并由叉指形电极输出。
    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值