标签:java
java7 特性
异常处理
异常类的构造器有可以接受两个参数,
分别用来禁用忽略异常和禁用堆栈跟踪
忽略异常:
当第一个异常产生后,需要执行其他清理操作(finally()||资源关闭),
但是在执行过程中又产生了其他异常;
可以调用ex.addSupressed(ex2),加入忽略异常
(产生多个异常)
堆栈跟踪:
产生异常时代码的执行链
(只产生一个异常)
/**
* 1.try-with-resource语句
* 2.忽略异常
*/
private void exceptionTest(){
try(Scanner in=new Scanner(Paths.get("路径"))){
in.hasNext();
}catch (IOException e){
}
}
文件使用
Path路径,一个文件路径的抽象
创建
//creat
Paths.get("root","dir1","file.txt");// 相对路径,/root/dir1/file.txt;
Paths.get("/","dir1","file.txt");// 绝对路径,/为根目录,取决于操作系统
//组合、解析路径
Path p1=Paths.get("root","dir1");
Path p2=Paths.get("conf.txt");
p1.resolve(p2);//返回/root/dir1/conf.txt.产生子目录
p1.resolveSibling("dir2");//返回/root/dir2.产生兄弟目录
p1.toAbsolutePath();//返回指定路径的绝对路径,根据调用JVM的路径进行解析,如在/JVM下启动应用,则返回./JVM/root/dir1
读取,写入
/**
* 读取、写入,复制文件
*/
//read
//all
Files.readAllBytes(p1);//new String(byte[],charset)转换
//byLine
Files.readAllLines(p1);
//write
Files.write(p1,"内容".getBytes(), StandardOpenOption.APPEND);//追加写入
//处理大文件的时候,转换为Stream||reader/Writer
InputStream in=Files.newInputStream(p1);
OutputStream out=Files.newOutputStream(p1);
Reader reader=Files.newBufferedReader(p1);
Writer writer=Files.newBufferedWriter(p1);
//文件复制copy可以将Path和in||out连接起来
Files.copy(in,p1);
Files.copy(p1,out);
创建文件、目录
/**
* 创建文件和目录
*/
//creat dir
Files.createDirectory(p1);
Files.createDirectories(p1);//递归创建
//creat file
Files.createFile(p1);
Files.exists(p1);//判断文件是否存在
复制,移动,删除
/**
* 复制,copy
* 移动,move
* 删除文件 delete() deleteIfExists()
*/
其他改进
private void otherTest(){
//eauals()中的null判断
Integer a=1;
Integer b=2;
// a==null && b==null,return true;
// a==null && b!=null,return false;
// other a.equals(b);
Objects.equals(a,b);
//计算hash码
//对象有实例变量a,b,hash重写 Objects.hash(a,b);
//数值比较
//return (a-b);如果b为负数,有溢出的风险,使用Integer.compare(a,b);
}