android学习札记第7章之异常及IO初步
开发一个android程序,请多少个老师也不如自己遇到问题自己解决,项目中会存在多种不同的异常,并且如果你自己有机会写了一邗锒凳审个对团队都有用的类,可能会存在异常,所以也要自定义异常,面对各种各样的异常一定要耐心的去解决问题。IO流在android程序中也是不可缺少的知识点,IO会产生不同的IO异常,下面就针对这两方面去学习,首先先来熟悉一下异常和IO的基本知识。
工具/原料
JDK、eclipse、android SDK、ADT
一、异常(java.lang)
1、throws(从管道向外抛出异常) vo坡纠课柩id f() throws Exception{} ①RuntimeEx艘早祓胂ception(默认管道,不需要抛出): 在方法上默认存在它的抛出管道。 它和它的子类对象,都可以从它的管道抛出。 ②其他异常:需要手动设置抛出管道,才能抛出;否则,必须捕获异常。 ③子类抛出异常不能比父类抛出异常多。(子类的访问级别不能比父类的访问级别小。)
2、throw 执行抛出动作,手动抛出异常。throw new Exception("异常信息");,当运行后等同于return后面语句不再执行。
3、异常包装 无法修复错误,将异常抛给调用位置处理,将不能抛出的异常封装到可抛出的类型(如:RuntimeException)中抛出。
4、自定义异常 ①起一个合适的类型名称 ②找一个合适的异常父类(Exception:需要设置抛出管道、RuntimeException) ③添加构造方法
二、IO(java.io)
1、File(java.io.File)①File对象封装了一个磁盘路径字符串(路径:文件路径或目录路径,可有可无)。②创建对象 File f=new File("d:/a.txt"); File f=new File("d:/","a.txt");
2、方法:①通用: canRead():是否可读 罕铞泱殳 canWrite():是否可写 canExecute():是否可执行 isHidden():是否有隐藏文件 exists():判断是否存在文件 getAbsolutePath():获得绝对路径 getName():获得文件名 getParent():获得父目录 lastModified():返回修改时间()毫秒值 length():文件字节量,对目录无效 isDirectory():是否是目录 isFile():是否是文件 getTotalSpace():获得空间总大小 getFreeSpace():获得剩余空间大小②文件或目录操作: createNewFile():创建文件,返回boolean值,如果文件已存在,返回false,如果存在且所在目录不存在,会有异常。 delete():删除一个文件或一个“空目录”,返回boolean值 mkdir():创建单层目录,返回boolean值 mkdirs():创建多层目录,返回boolean值 renameTo():改名、移动,返回boolean值 static createTempFile(前缀,扩展名):创建系统临时文件③文件列表: list():返回所有文件和目录的字符串数组 listFiles():返回所有文件和目录的File数组 list(new FilenameFilter(){}):返回过滤好的文件和目录的字符串数组 listFiles(new FilenameFilter(){}):返回过滤好的所有文件和目录的File数组
3、递归:连续调用自己的方法,使自己一次一次变成最简单的方法。
4、练习:使用递归调用求目录的总大小。