黑马程序员_java基础之IO(异常,文件)
2015-05-18 14:51
453 查看
-------
android培训、java培训、期待与您交流! ----------
throwable的分类
Error 错误
OutOfMemoryError 内存溢出
StackOverflowError 栈溢出
Exception 异常
编译期异常: 在代码编写好后,编译的时候产生的异常
ParseException 解析异常
运行期异常: 代码编译的时候没出错,运行的时候出现了异常
ConcurrentModificationException 并发修改异常
NullPointerException 空指针异常
ArrayIndexOutOfBoundsException 数组角标越界异常
StringIndexOutOfBoundsException 字符串角标越界异常
可能产生异常的代码
} catch (异常类名 异常对象名) {
解决异常的代码
}finally {
必须要进行的操作
释放垃圾对象
}
格式2:把当前 异常 声明在方法上
修饰符 返回值类型 方法名 (参数列表) throws 异常类名 {....}
方式2: 所有的异常一起处理
一个try 对应着多个catch
处理步骤:
当try语句中,出现了异常的时候,那么,try语句中下面的代码不执行了
跳转到当前异常对应的异常处理的catch语句中
当catch语句中的代码执行完毕后, 执行 try...catch语句块 后面的代码
格式: try{
可能出现异常的代码
} catch (异常类名1 对象名1) {
异常处理方式
} catch (异常类名2 对象名2) {
异常处理方式
} catch (异常类名3 对象名3) {
异常处理方式
} ....
特点:
同一时刻,只能处理一个异常
每个异常的处理方式可以不同
方式3:jdk7的新的异常处理方式(平级异常),所有的异常 一起处理, 并且处理的方式也是相同的
格式: try{
可能出现异常的代码
} catch (异常类名1 | 异常类名2 | ... 异常对象名) {
异常处理方式
}
特点 同一时刻,只能处理一个异常
每个异常的处理方式一样
如果在执行到finally之前,JVM退出了, 那么,不会再执行 finally中的代码
1: 子类重写父类方法时,子类的方法必须抛出相同的异常或父类异常的子类。
2: 如果父类抛出了多个异常,子类重写父类时,只能抛出相同的异常或者是他的子集,子类不能抛出父类没有的异常
3: 如果被重写的方法没有异常抛出,那么子类的方法绝对不可以抛出异常,如果子类方法内有异常发生,那么子类只能try,不能throws
在方法的内部使用
后面跟着一个异常对象
肯定会抛出一个异常
抛出的异常的解决方式,可以try..catch解决,也可以抛出现throws解决
throws: 在方法声明上使用
跟着一个或者多个异常类名, 多个异常类名 使用 逗号 分开
可能会抛出一个或多个异常,也可能一个也不抛出
抛出的异常的解决方式, 需要调用者来解决0
1: return x; //10 这个时候 只是进行了返回的标记,同时,确定要返回的数据值,没有真正的执行返回语句
2: 执行了 finally语句
3: 再回到return x; 返回当时的x值
案例
public File(Strin
4000
g parent, String child) 把指定文件夹,和指定的文件或文件夹作为字符串传递给File对象
public File(File parent, String child) 把指定File对象,和指定的文件或文件夹作为字符串传递给File对象
public boolean createNewFile()
创建文件夹 public boolean mkdir() 创建单层文件夹
public boolean mkdirs()创建多层文件夹
删除文件 或者 删除空文件夹
public boolean delete() java程序删除的内容 不走回收站,删除要小心
判断功能
public boolean canRead() 当前的文件内容是否可读
public boolean canWrite() 当前的文件内容是否可写
public boolean exists() 当前File所代表的文件或文件夹是否存在
public boolean isAbsolute() 当前File所代表的路径 是否为 绝对路径
public boolean isDirectory() 是否为一个文件夹
public boolean isFile() 是否为一个文件
public boolean isHidden() 是否为隐藏文件
获取功能
针对于 文件
public String getAbsolutePath() 返回File 所代表文件或文件夹的绝对路径
public String getName() 获取名字
public String getPath() 获取路径,获取的是File对象当前所封装的路径对象
public long lastModified() 返回FIle对象 最后一次修改时间
public long length() 返回文件的长度
针对于文件夹
public String[] list() 返回当前File所代表的目录中,所有的文件和文件夹的String对象
public File[] listFiles() 返回当前File所代表的目录中,所有的文件和文件夹的File对象
public static File[] listRoots() 返回当前电脑上所有的盘符信息
重命名
public boolean renameTo(File dest)重新命名此抽象路径名表示的文件
method1();
}
斐波那契数列 1 1 2 3 5 8 13 21......
android培训、java培训、期待与您交流! ----------
1.Throwable 类
1.1异常:
就是程序在运行的时候,出现的错误是 Java 语言中所有错误或异常的超类throwable的分类
Error 错误
OutOfMemoryError 内存溢出
StackOverflowError 栈溢出
Exception 异常
编译期异常: 在代码编写好后,编译的时候产生的异常
ParseException 解析异常
运行期异常: 代码编译的时候没出错,运行的时候出现了异常
ConcurrentModificationException 并发修改异常
NullPointerException 空指针异常
ArrayIndexOutOfBoundsException 数组角标越界异常
StringIndexOutOfBoundsException 字符串角标越界异常
1.2处理方式
格式1:try..catch try{可能产生异常的代码
} catch (异常类名 异常对象名) {
解决异常的代码
}finally {
必须要进行的操作
释放垃圾对象
}
格式2:把当前 异常 声明在方法上
修饰符 返回值类型 方法名 (参数列表) throws 异常类名 {....}
1.3多个异常的情况
方式1: 一个个异常,单独处理方式2: 所有的异常一起处理
一个try 对应着多个catch
处理步骤:
当try语句中,出现了异常的时候,那么,try语句中下面的代码不执行了
跳转到当前异常对应的异常处理的catch语句中
当catch语句中的代码执行完毕后, 执行 try...catch语句块 后面的代码
格式: try{
可能出现异常的代码
} catch (异常类名1 对象名1) {
异常处理方式
} catch (异常类名2 对象名2) {
异常处理方式
} catch (异常类名3 对象名3) {
异常处理方式
} ....
特点:
同一时刻,只能处理一个异常
每个异常的处理方式可以不同
方式3:jdk7的新的异常处理方式(平级异常),所有的异常 一起处理, 并且处理的方式也是相同的
格式: try{
可能出现异常的代码
} catch (异常类名1 | 异常类名2 | ... 异常对象名) {
异常处理方式
}
特点 同一时刻,只能处理一个异常
每个异常的处理方式一样
1.4处理注意事项
当多个异常出现了 子父类关系的时候,需要主要注意:父类的异常要在子类异常的下面如果在执行到finally之前,JVM退出了, 那么,不会再执行 finally中的代码
1: 子类重写父类方法时,子类的方法必须抛出相同的异常或父类异常的子类。
2: 如果父类抛出了多个异常,子类重写父类时,只能抛出相同的异常或者是他的子集,子类不能抛出父类没有的异常
3: 如果被重写的方法没有异常抛出,那么子类的方法绝对不可以抛出异常,如果子类方法内有异常发生,那么子类只能try,不能throws
2.异常处理的两个问题
2.1 throw 与 throws 的区别
throw:在方法的内部使用
后面跟着一个异常对象
肯定会抛出一个异常
抛出的异常的解决方式,可以try..catch解决,也可以抛出现throws解决
throws: 在方法声明上使用
跟着一个或者多个异常类名, 多个异常类名 使用 逗号 分开
可能会抛出一个或多个异常,也可能一个也不抛出
抛出的异常的解决方式, 需要调用者来解决0
2.2在异常处理语句中, try中有一个return 语句, 问finally语句是否会执行? 如果会,在return前执行还是return后执行?
会,在return语句执行的中间运行的finally语句1: return x; //10 这个时候 只是进行了返回的标记,同时,确定要返回的数据值,没有真正的执行返回语句
2: 执行了 finally语句
3: 再回到return x; 返回当时的x值
案例
public class ExceptionTest2 { public static void main(String[] args) { //method (); //int result = method1(10); int result = method2(10); System.out.println(result); System.out.println("结束了"); } private static int method2(int x) { try{ System.out.println(x/0); } catch (ArithmeticException e) { System.out.println("异常产生了"); return x;//10 } finally { System.out.println("解决一下"); x++;// x=11 } return 0; } private static int method1(int x) {//x= 10 try{ System.out.println(x/0); return x;//11 } finally { System.out.println("解决一下"); x++;// x=11 } } private static void method() { try{ System.out.println(3/0); return ; } finally { System.out.println("解决一下"); } } }
3.File
文件和目录路径名的抽象表示形式3.1构造方法:
public File(String pathname)把指定文件或文件夹的路径作为字符串传递给File对象public File(Strin
4000
g parent, String child) 把指定文件夹,和指定的文件或文件夹作为字符串传递给File对象
public File(File parent, String child) 把指定File对象,和指定的文件或文件夹作为字符串传递给File对象
3.2File中的功能
创建文件public boolean createNewFile()
创建文件夹 public boolean mkdir() 创建单层文件夹
public boolean mkdirs()创建多层文件夹
删除文件 或者 删除空文件夹
public boolean delete() java程序删除的内容 不走回收站,删除要小心
判断功能
public boolean canRead() 当前的文件内容是否可读
public boolean canWrite() 当前的文件内容是否可写
public boolean exists() 当前File所代表的文件或文件夹是否存在
public boolean isAbsolute() 当前File所代表的路径 是否为 绝对路径
public boolean isDirectory() 是否为一个文件夹
public boolean isFile() 是否为一个文件
public boolean isHidden() 是否为隐藏文件
获取功能
针对于 文件
public String getAbsolutePath() 返回File 所代表文件或文件夹的绝对路径
public String getName() 获取名字
public String getPath() 获取路径,获取的是File对象当前所封装的路径对象
public long lastModified() 返回FIle对象 最后一次修改时间
public long length() 返回文件的长度
针对于文件夹
public String[] list() 返回当前File所代表的目录中,所有的文件和文件夹的String对象
public File[] listFiles() 返回当前File所代表的目录中,所有的文件和文件夹的File对象
public static File[] listRoots() 返回当前电脑上所有的盘符信息
重命名
public boolean renameTo(File dest)重新命名此抽象路径名表示的文件
4.递归
方法定义中调用方法本身的现象 method1(){method1();
}
斐波那契数列 1 1 2 3 5 8 13 21......
public class DiGuiTest2 { public static void main(String[] args) { //int count = shulie(20); int count = shulie(7); System.out.println(count); } //斐波那契数列 的结果 private static int shulie(int n) { if (n==1 || n==2) { return 1; } else { return shulie(n-1) + shulie(n-2); } } }
相关文章推荐
- Java基础之IO流,创建文件并写入内容与IO异常的标准处理方法
- 黑马程序员_Java基础_IO流_字节流,字节流操作文件,缓冲区字节流,流的使用规律,异常记录原理
- 黑马程序员————java基础--------IO输入输出之异常、File类和递归
- 黑马程序员——JAVA基础——IO(一)---流概述,节点流、处理流、转换流与标准输入输出流、打印流、File文件对象、合并流
- 黑马程序员——Java基础——字节流文件操作、键盘录入、转换流、流操作规律、异常日志等
- Java基础——IO(拷贝文件+字节流-字符流缓冲区(装饰设计)-转换流-IO操作规律-异常日志-系统信息列表输出)
- 黑马程序员_JAVA基础_内部类,匿名内部类,异常
- 黑马程序员_JAVA基础_异常,包
- 黑马程序员——Java基础——内部类、异常、包
- 黑马程序员——Java语言基础——03.面向对象(3)异常
- Hadoop 上传文件到hdfs出现:java.io.FileNotFoundException: /test.txt (Permission denied)异常
- 黑马程序员,Java基础知识五:异常
- 黑马程序员————Java基础部分之多态、内部类、异常
- 黑马程序员——java基础——文件File
- 黑马程序员——Java基础—异常、package
- 黑马程序员——Java基础---内部类与异常
- 黑马程序员——————一、Java异常的基础知识
- javaIE下载文件中取消下载出现ClientAbortException: java.io.IOException异常
- 黑马程序员---从头开始,回忆JAVA基础之文件操作
- 黑马程序员——Java基础--- 异常