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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© Richard926 中级黑马   /  2015-4-30 00:04  /  500 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

   今天终于开始学习传说中的IO流,不过今天一半时间是讲的异常的知识,IO只讲了一个简单的开始,感觉还可以。
Day19-异常、IO-File
2015/04/29
[size=10.5000pt]1、异常
在编写程序的时候,可能会有很多问题存在,为了将来方便的表示这些问题的原因、类型、位置,java就提供异常对象。
程序出现了不正常的情况。
Throwable
Error:严重问题,通常出现重大问题,比如运行的类不存在或者内存溢出。
Exception:不严重问题
编译期间:需要处理的;
运行期间:需要修改代码或者传递的参数。
程序出现异常,该怎么解决?
首先出现异常,jvm会采用自动处理方式,它会把异常的类型、原因、位置显示在控制台上,然而后面的代码是不能执行的。
A:编译期间异常:编写处理代码,具体方法如下
处理异常的方法:
1)获取
基本格式:
1)一个代码中有一个异常
Try{
可能发生问题的代码。(代码尽可能的少)
}catch(异常类名 变量名){
异常处理代码(例如:返回一个错误页面)
}finally{
释放资源。(用在数据库、IO
//finally一般用在异常中,里面的代码永远会执行,用于释放资源!
}
(2)一个代码中有多个异常:用一个try多个catch。从JDK7以后,一个catch()中针对多个异常程序可以有多个异常类。示例
catch(异常1 | 异常2 | 异常3 |  e{
e.printStackTrace();
}
如果异常是平级关系,没有顺序问题;
如果异常存在子夫类关系,父类放在最后。
2) Throw抛出异常
Throws声明异常
如果能处理就选择获取方式,否则选择抛出方式。
B:编译期间异常:不能用trycatchthrows处理,只能修改代码。
Throwable类中的方法:
Public String
        Public String toString():返回异常的简短描述。返回的形式;全路径类名 : 消息字符串。
        Public void printStackTrace():把错误显示在控制台上。
面试题:
(1)final、finally和finalize的区别?
        Finalize是垃圾回收机制。
(2)finally中的代码一定会永远执行吗?
        会永远执行,但是有一个特殊情况:在代码执行到finally之前,jvm就退出了。
(3)加入在catch里面有return语句,请问finally里面的代码还会执行吗?如果执行时在return之前还是在之后?
        会执行,在return之前执行。但是这样说不准确,准确的是在return之间执行
[size=10.5000pt]2、自定义异常
使用:
[size=10.5000pt]3、IOinput/output)流
泛指对某个设备或环境进行数据的输入或输出。
对于输入输出问题,java将之抽象为流对象来解决。对于不同的输入输出问题,会有相应的流对象提供解决方案。
1IO流用来处理不同设备之间输入输出数据问题的。
2IO流操作的类都在IO包中。
3IO流分类
A按照流向分:
输入流        读取数据
输出流        写入数据
B按操作数据不同
字节流(2个字节=1个字符)
字符流(解决文本数据的问题)通过Windows自带的记事本能够打开这个文件,并且里面的内容还能读懂,这样的文件就可以用字符流就可以。否则用字节流。
File
数据在硬盘上最常见的方式就是文件,而文件本身有很多的属性,对文件进行操作,因此java就提供了file类。
文件和目录名的具体表现形式,因此文件既可以表示文件也可以表示文件夹。
构造方法:
FileString pathname):根据指定的路径创建File对象。
FileString parentString child):根据指定的父文件夹和子文件或者文件夹创建File对象;
FileFile parentString child):根据指定的父File对象和子文件或者文件夹创建File对象。
功能方法:
1)创建功能
创建文件:
public boolean createNewFile() 如果指定的文件不存在,就创建。如果存在,就不创建。
创建件文件夹:
public boolean mkdir():创建指定的目录,如果存在,就不创建。
public boolean mkdirs():创建指定的目录,如果存储,就不创建。这个时候,如果父目录不存在,它也会自动创建。
绝对路径:以盘符开始的路径        (一般使用)
相对路径:不以盘符开始的路径       

总结的内容超出帖子预定的字节数,所以把后面的知识放在首个回复里了!

2 个回复

倒序浏览
(2)删除功能
Public boolean delete():既可以删除文件也可以删除文件夹。取决于使用的对象。
注意:
A:如果删除的目录下还有内容,那么必须先把所有的内容删除完毕后再删除目录
B:java语言的删除不走回收站
(3)判断功能
Boolean exists():判断是否存在
Boolean isFile():判断是否是文件
Boolean isDirectory():判断是否是文件夹
Boolean isAbsolute():判断是否是绝对路径
Boolean canRead():判断是都可读
Boolean canWrite():判断是否可写
回复 使用道具 举报
很给力呀,特别是finally,面试经常会被问到的
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马