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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

一.异常:
        1).try...catch的几种格式:
                A.try...catch...
                B.try...catch...catch...catch...
                C.try...catch...finally...
                D.try...catch...catch...catch...finally...
                E.try...finally...
        2).throws和throw的区别:
                A.throws:
                        1.用在方法的声明处;
                        2.后面跟的是"异常类名",而且可以有多个。
                        3.表示:方法内"可能"会产生这种异常。如果产生异常,
                          JVM会将异常对象抛给调用者。
                        4.抛出的异常类型:
                                A.运行时异常:调用者可以不处理;
                                B.非运行时异常:调用者必须处理,try..catch..或者继续抛出。
                B.throw:
                        1.用在方法内部;
                        2.后面跟的是"异常对象",而且只能有一个。
                        3.表示:已经发生了某种异常。异常对象可能是由程序自己new出来的,也可能是
                          JVM自动产生的。
                        4.抛出的异常类型:
                                A.运行时异常:方法声明处可以不声明throws;调用者可以不处理;
                                B.非运行时异常:方法声明处必须声明throws;调用者必须要处理;
        3).继承中方法重写时的异常处理:
                无论父类方法是否抛出异常:
                    子类都可以:
                    1.不抛出任何异常;
                    2.可以抛出任何的运行时异常;
                    3.不能抛出比父类更多的非运行时异常;
        4).自定义异常:
                1.有些时候我们需要根据具体的业务逻辑,抛出某些异常;
                2.自定义异常的步骤:
                        1).自定义类,继承自Exception或者某个子类(RuntimeException--运行时)
                        2).建议:提供一个带参的构造方法,用于指定异常信息;
                        3).使用:在该抛出这种异常的位置,throw这种异常。
二.File类:
        1.File代表磁盘上的一个文件/目录;
        2.构造方法:
                File(String filePath):
                File(String parent,String child):
                File(File parent,String child):
        3.常用方法:
                。。。。。
                String[] list():获取目录下所有子文件/子目录的名称的数组;
                File[] listFiles():获取目录下所有子文件/子目录的File的数组;
               
                File[] listFiles(FilenameFilter filter):
                File[] listFiles(FileFilter filter):

        4.过滤器:
                FilenameFilter:
                        boolean accept(File dir,String name)
                FileFilter:
                        boolean accept(File file)
三.递归:
        1.递归:又叫:递归方法调用,是指方法可以调用自己。
        2.递归的注意事项:
                1).递归要有出口,否则就是死递归;
                2).递归层次不要太深,否则内存溢出;
                3).构造方法不能递归调用;
四.IO流:
        1.字节流:
                1).输出流:OutputStream
                           输出的方法(三种):
                           1).输出一个字节;2).输出字节数组;3).输出字节数组的一部分;
                           |--FileOutputStream(子类)
                           |--FilterOutputStream(不学)
                                |--BufferedOutputStream(缓冲流)
                                |--PrintStream(打印流)
                           |--ObjectOutputStream(序列化流)
                2).输入流:InputStream
                           读取的方法(两种):
                           1).读取一个字节;2).读取一个字节数组;
                           |--FileInputStream(子类)
                           |--FilterInputStream(不学)
                                |--BufferedInputStream(缓冲流)
                           |--ObjectInputStream(反序列化流)
        2.字符流:
                1).输出流:Writer
                           输出的方法(五种):
                           1).输出一个字符;2).输出一个字符数组;3).输出一个字符数组的一部分;4).输出一个字符串;5).输出字符串的一部分;
                           |--OutputStreamWriter(转换流 --> 编码表 + 字节流)
                                |--FileWriter(子类--> 默认编码表)
                           |--BufferedWriter(缓冲流):
                                新增的方法:void newLine():输出一个换行符
                           |--PrintWriter(打印流)
                                新增的方法:void println()://write(String s) + newLine() + flush()
                2).输入流:Reader
                           读取的方法(两种)
                           1).读取一个字符;2).读取一个字符数组;
                           |--InputStreamReader(转换流 --> 编码表 + 字节流)
                                |--FileReader(子类 --> 默认编码表)
                           |--BufferedReader(缓冲流):
                                新增的方法:String readLine():读取一行数据,不包括换行符;
五.Properties类:
        1.它本质上是一个:Map集合
        2.它内部包含了一些方法,可以很方便的操作配置文件:
        3.新增的方法:
                1). setProperty(String key,String value):相当于Map的put(K,V)
                2). getProperty(String key):相当于Map的get(K)方法
                3). stringPropertyNames():相当于Map的keySet()方法
                4). store(Writer out,String comm):使用字符输出流,向配置文件中一次性写入集合中的内容;
                5). load(Reader in):使用字符输入流,从配置文件中一次性读取所有内容到集合中。
六.序列化:
        1.序列化:是将一个对象(包括属性值)保存到一个文件中,或者通过网络进行传输;
                  序列化流:
                        java.util.ObjectOutputStream
                                writeObject(Object obj)
                  注意:被序列化的类,必须实现:java.io.Serializable接口,此接口中没有任何方法,这种接口叫:标记接口
        2.反序列化:是将以前序列化的对象再次读取到程序中。
                  反序列化流:
                        java.util.ObjectInputStream
                                Object readObject()
        3.序列号:
                1).被序列化的类都会隐式的被定义一个"序列号",并会被序列化到文件中。
                   如果更改"类"内容,会自动修改序列号,这样就会使此序列化跟之前被序列化的对象的序列化不一致,
                   这时反序列化就会抛异常。
                2).建议:自己来维护序列号。
        4.瞬态关键字:transient
                1).如果某个类的某个属性不希望被序列化,可以声明为:transient
                                private transient int a ;

七.commonsIO:
        1.使用第三方jar的步骤:
                1).(建议):将第三方jar包复制到项目中;
                2).在Eclipse中,选中第三方jar包,右键-->Build Path --> Add to Build Path(添加到构建路径)
                3).在其它类中导入包就可以使用了。
        2.FilenameUtils:对文件名进行操作的一些方法
                1).getExtension(String fileName):获取文件的扩展名;
                2).getName(String fileName):获取文件名
                3).isExtension(String fileName,String ext):判断fileName是否是ext后缀;
        3.FileUtils:对文件进行操作的一些方法:
                1).readFileToString(File srcFile):从文件中读取所有内容,返回一个String
                2).writeStringToFile(File destFile,String info):将info写入到destFile中;
                3).copyDirctoryToDirctory(File srcDir,File destDir):将srcDir复制到destDir下;
                4).copyFile(File srcFile,File destFile):将srcFile复制到destFile中。

0 个回复

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