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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 我认识你 中级黑马   /  2016-4-28 22:06  /  462 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

一.异常:
        1.基本格式:
                1).try...catch...
                2).try...catch...catch...catch...
                3).try...catch...finally...
                4).try...catch...catch...catch...finally...
                5).try...finally...
          注意:
          1).当多个catch时,每个catch中的"异常类型"可以是"平级关系",此时它们之间没有顺序关系;
             也可以是"子父关系",此时,"父类"类型的异常,必须声明在多个catch的最后;
          2).finally中的代码是一定会被执行的。
                        见:Demo08
          3).JDK7之后,多个catch有种新的语法:
                        try{
                                //代码
                        }catch(异常类型1 | 异常类型2 | ... 变量名){//多个异常必须是平级关系,不能有父类类型
                               
                        }

        2.方法内处理异常的方式:
                1).throws
                        A.用于方法声明处;表示:此方法"可能"会出现某种异常
                        B.后面跟的是"异常的类名",可以有多个,每种异常中间使用,号隔开;
                        C.如果方法内真的产生这些异常了,JVM会自动将异常对象抛给调用者;
                        D:如果throws后面跟的:
                                a).运行时异常:调用者可以不处理;
                                b).非运行时异常:调用者必须处理;

                2).throw
                        A.用于方法内部,表示:已经产生异常了,将这个异常对象抛给调用者;
                        B.后面跟的"异常对象(可以自己new出来的,也可以是由JVM产生的)",只能有一个;
                        C.如果throw的异常类型:
                                a).运行时异常:方法的声明不用显示的使用throws声明抛出这种异常;
                                               调用者也可以不处理;
                                b).非运行司异常:方法的声明处必须显示的使用throws抛出这种异常;
                                                 调用者必须处理,否则编译错误;
        3.自定义异常:
                1).我们经常会根据业务逻辑定义自己的异常;
                2).定义异常类的步骤:
                        A.自定义类,继承自Exception或者它的某个子类;
                        B.建议提供一个接受String的构造方法,用于使用者指定"异常信息"
        4.异常的体系结构:
                Throwable(所有异常、错误的父类)
                        |--Error(错误):
                        |--Exception(异常):
                                |--RuntimeException(运行时异常):
                                |--除RuntimeException外的其它异常
二.File类:
        1.File类可以表示磁盘上的一个文件或者目录;
        2.构造方法:
                File(String s):
                File(String parent,String child):
                File(File parent,String child):
        3.成员方法:
                获取文件名称                        getName()
                获取文件绝对路径                getAbsolutePath()
                获取文件大小                        length()字节
                获取当前文件夹中所有File对象        File[] listFiles()
                判断是否为文件                        isFile()
                判断是否为文件夹                isDirectory()
                创建文件夹                        mkdir()        mkdirs()
                创建文件                        createNewFile()       

       
               
三.字节流:
        1.输出流:OutputStream(抽象类)
                        输出的方式:
                        1.write(int b):输出一个字节
                        2.write(byte[] b):输出一个字节数组;
                        3.write(byte[] b,int offset,int len):输出一个字节数组的一部分;

                        |--FileOutputStream(基本流):
                        |--FilterOutputStream(不学)
                                |--BufferedOutputStream(缓冲流)
                                |--PrintStream(打印流--System.out):
                        |--ObjectOutputStream(序列化):
                                writerObject(Object obj):序列化的方法
                                注意:1.被序列化的对象,必须实现:Serializable接口(标记接口,没有任何的方法)
                                      2.建议定义"序列号"
                                      3.不需要被序列化的成员属性可以使用关键字:transient

        2.输入流:InputStream(抽象类)
                        读取的方式:
                        1.int read():读取一个字节:返回值:读取的字节
                        2.int read(byte[] b):读取一个字节数组:返回值:读取的字节数量;

                        |--FileInputStream(基本流)
                        |--FilterInputStream(不学)
                                |--BufferedInputStream(缓冲流)
                        |--ObjectInputStream(反序列化)
                                readObject():
                                注意:1.反序列化时,文件中的对象对应的"类文件"在项目中必须存在,否则无法反序列化;
                               

                               
四.字符流:
        1.输出流:Writer(抽象类)
                        |--OutputStreamWriter(转换流):可以将字节流转换为字符流
                                |--FileWriter(基本流):
                        |--BufferedWriter(缓冲流):
                                特有方法:newLine():输出一个换行符;
                        |--PrintWriter(打印流-->带自动刷新--自动换行)
        2.输入流:Reader(抽象类)
                        |--InputStreamReader(转换流):可以将字节流转换为字符流
                                |--FileReader(基本流):
                        |--BufferedReader(缓冲流):
                                特有方法:String readLine():读取一行数据
                       
五.commons-io:
        1.将jar包拷贝到项目中:最好是建立一个lib目录
        2.在项目中的jar包上右键-->Build Path -->Add To Build Path
        3.在类中就可以直接使用jar包中的类了:
        4.FilenameUtils:对文件名进行操作的工具类
                getExtension(String path):获取文件的扩展名;
                getName():获取文件名;
                isExtension(String fileName,String ext):判断fileName是否是ext后缀名;
        5.FileUtils:对文件进行操作的工具类:
                readFileToString(File file):读取文件内容,并返回一个String;
                writeStringToFile(File file,String content):将内容content写入到file中;
                copyDirectoryToDirectory(File srcDir,File destDir);文件夹复制
                copyFile(File srcFile,File destFile);文件夹复制
六.Properties类:
        1.java.util.Properties类它属于一种集合--Map集合
        2.常用方法:
                setProperty(String key ,String value):相当于Map的put()方法
                String getProperty(String key):相当于Map的get()方法
                Set<String> stringPropertyNames():相当于Map的keySet()

                void load(Reader in):读取配置文件中的信息到集合中;
                void store(Writer out,String c):将集合中数据写入到配置文件中。
               

0 个回复

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