A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© mm2015 中级黑马   /  2015-12-30 10:59  /  370 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

        Throwable
                Error
                Exception
                        RuntimeException -- 修改代码
                        非RuntimeException -- 异常处理
                       
        异常处理:
                方式1:捕捉异常处理
                        try {
                                // 可能出问题的代码
                        } catch(异常类名 变量名) {
                                // 异常处理代码
                        } finally {
                                // 释放资源
                        }
                       
                方式2:将异常声明出去
                        在方法声明上添加 throws + 异常类名
               
        File类:
                四类功能:创建、重命名和删除、判断、获取
               
       
一、IO流之字节流
        1、IO流概述及其分类
                按操作的数据类型分:
                        字节流 -- 可以操作任何文件。
                        字符流 -- 只能操作用windows自带记事本打开不乱码的文件。(文本文件)
       
                按数据的流向来分;(站在程序的角度)
                        输入流 -- 从文件读取数据
                        输出流 -- 向文件写入数据
       
        2、FileInputStream

                操作步骤:
                        A: 创建输入流对象 -- 从文件读取数据,这个文件必须存在
                                FileInputStream(File file)
                                FileInputStream(String name)
                       
                        B: 从文件中读取数据
                                一次读取一个字节
                                        public int read() throws IOException
                               
                                重点代码:
                                        int by = 0;
                                        while((by = fis.read()) != -1){
                                                // 获取到了每一个字节
                                        }
                       
                        C: 释放资源
       
        3、InputStream的read()方法返回值为什么是int
       
        4、FileOutputStream
       
                操作步骤:
                        A: 创建输出流对象
                                -- 如果文件不存在,会自动创建。(但是父目录必须存在)
                                使用如下构造:
                                        FileOutputStream(File file)
                                        FileOutputStream(String name)
                                                -- 如果存在,会把数据清空,从头再写。
                                               
                                如果想追加写入,请使用下面带两个参数的构造:
                                        FileOutputStream(File file, boolean append)
                                        FileOutputStream(String name, boolean append)

                        B: 向文件中写入数据(因为文件的基本单位就是字节,所以数据可以直接写进去)
                               
                                一次写入一个字节:
                                        void write(int b)
                       
                        C: 释放资源
               
        5、FileOutputStream追加
       
        6、字节流练习 - 拷贝图片
                操作步骤:
                        创建输入流对象 -- 封装数据源
                        创建输出流对象 -- 封装目的地
                        读写操作
                        释放资源
               
                一次读写一个字节的方式
       
        7、字节流练习 - 拷贝音频文件画原理图
       
        8、字节数组拷贝之available()方法
       
                一次读写一个字节数组:
                        int read(byte[] bys)
                        void write(byte[] bys)
       
        9、字节数组拷贝之定义长度较小的数组
               
                // 读写操作
                byte[] bys = new byte[1024 * 8]; // 开发中,一般使用1024的整数倍。
                int len;
                // 读是读一个字节数组
                while((len = fis.read(bys)) != -1) { // len 表示实际读取到的字节数,如果到达流结尾,返回-1
                        // 写是写入一个字节数组的一部分
                        fos.write(bys, 0, len);
                }
       
        10、字节数组拷贝之定义数组的标准格式
       
        11、BufferedInputStream和BufferOutputStream拷贝
               
       
        12、flush和close方法的区别
                flush方法,刷新缓冲区,把流里面的数据写到文件中去,流对象还是可以继续使用的。
                close方法,关闭流对象,并释放与此流有关的所有系统资源。流对象不可再使用。并且关闭之前要先刷新一下缓冲区。
       
        13、字节流读写中文
                字节流读取中文,打印到控制台显示,有可能会乱码。
                字节流写出中文,需要把字符串转换成字节数组。
       
        14、JDK1.6版本及其以前的版本中流的标准处理异常代码
                流操作是底层操作,异常最好抛出。(告知调用者)。将异常抛出,但保证流可以关闭掉。
               
                使用try{}finally{} 的格式,将代码做异常处理。
       
        15、JDK1.7版本流的标准处理异常代码
                try(
                        // 创建流对象的代码 -- 自动关闭(实现了AutoCloseable接口)
                ) {
                        // 读写操作
                }
                -- 上述格式将自动关闭流对象
               
        16、IO流练习 - 图片加密
       
        17、IO流练习 - 键盘录入文件路径,将文件拷贝到当前路径下
                要对键盘录入的东西进行判断
               
               
       
        18、IO流练习 - 录入数据拷贝到文件
       

       

       
               
               
               
               
               
               
               
               
               
               

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马