JAVA 的IO流(异常&File文件类)及一些常用流

IO流:IO流用来处理设备之间的数据传输,上传文件和下载文件
因为IO流操作的对象就是File文件,而且操作过程中会出现很多的异常,所以还要学习异常和File文件类

异常:Java程序在运行过程中出现的错误

Throwable是所有异常的顶层父类
异常分为两种:
1。Error严重问题:不用处理,因为问题非常严重,例如内存溢出
2。Exception非严重问题:可解决也可以不解决
 (1):编译期异常:非RuntimeException(异常必须解决)发生在编译期间,必须处理,不处理,程序就无法运行,此时有两种处理方法
-1)抛出异常给调用者,谁调用谁就来处理  ,throws一般只抛出到                                       main方法 ,就要处理 
-2)自己处理,使用try  catch方式
 (2):运行期异常:RuntimeException,可解决可不解决
 
 发生在程序运行过程中
 
 一旦发生异常JVM有自己默认的处理方式:打印异常信息,结束JVM
但一般不采用默认的处理方式,而是捕获异常自己去处理

try catch finally方法

try一般放一些有问题的代码
catch一旦try发生异常了,就会进入catc里面
finally不管前面是否执行,finally都会执行,一般做一些收尾工作,比如释放资源
 
  
package org.westos.demo2;
import java.util.Scanner;
    public class MyTest {
         public static void main(String[] args) {  
             int a=2;    
             int b=0;  
                Scanner sc=new Scanner(System.in);  
                System.out.println("请输入第一个整数");  
                       a = sc.nextInt();  
                System.out.println("请输入第二个整数");    
                       b = sc.nextInt(); 
         try {// 一般放一些有问题的代码   System.out.println(a/b); 
                      System.out.println("一般放一些有问题的代码");
              }
        catch (Exception e) {
                                                        // 一旦try发生异常了,就会进入catch里面  
                     System.out.println("一旦try发生异常了,就会进入catch里面");   
                                      }
         finally {
                                                        //finally 最后的   //finally 不管try里面遇不遇到异常
                                                         //finally 都会执行,一般做一些首尾工作,比如释放资源  
                     sc.close();      
                      }      
     }                         
   }

throws方法

private static void hehe() throws ParseException {
		String dateStr="2018-02-04";
		SimpleDateFormat simp = new SimpleDateFormat("yyyy:MM-dd");
		    //编译期异常有处理方式.抛出异常给调用者(甩锅)   		            //ParseException 解析异常
		    simp.parse(dateStr);

Throwable常见方法

getMessage()获取异常信息,返回字符串
toString()获取异常类名和异常信息,返回字符串
printStackTrace()获取异常类名和异常信息,以及异常出现在程序中的位置返回值void

throw和throws的区别

1。throws用在方法声明后面,跟的是异常类名,可以跟多个异常类名,用逗号隔开
    表示抛出异常,由该方法的调用者来处理throws表示出现异常的一种可能性,
并不一定会发生这些异常
2。throw用在方法体内,跟的是异常对象名,只能抛出一个异常对象名
    这个异常对象可以是编译期异常对象,可以是运行期异常对象
    表示抛出异常,由方法体内的语句处理
  throw则是抛出了异常,执行throw则一定抛出了某种异常

自定义异常

开发过程中,会遇到很多的问题,而有的问题并没有对应的异常与之对应,
所以就需要自己定义常量,而我们自己定义的常量必须继承自Exception
package org.westos.demo4;
    //自定义异常类
public class MyException extends RuntimeException{
	public MyException() {
		super();
			}
	public MyException(String message) {
		super(message);	
	}
}
package org.westos.demo4;
import java.util.Scanner;
public class Test {
	@SuppressWarnings("resource")
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		System.out.println("请输入你的取款金额");
		int money = sc.nextInt();
		if(money>200) {
			throw  new MyException("余额不足");
		}else {
			System.out.println("取款成功");
		}	
	}
}
当异常出现父子关系时
1.父类的方法如果没有抛出异常,那子类在重写父类的方法时也不能抛出异常
   2.父类如果抛出了异常,子类也可以抛出异常,但是不能比父类的大,但是可以跟父类一样,或者比父类小
   3.如果说父类抛出了多个异常,那子类只能抛出父类中的异常的 一个 或几个,但是不能抛出父类中没有的异常

File文件类:对目录和文件的封装

文件类的功能和方法
三种构造方法
   File(String pathname):根据一个路径得到File对象    
    File(String parent, String child):根据一个目录和一个子文件/目录得到File对象
  	File(File parent, String child):根据一个父File对象和一个子文件/目录得到File对象
                File file = new File("D:\\abc");
		File file4 = new File(file,"a.txt");
		File file2 = new File("D:\\abc\\a.txt");
		File file3=new File("D:\\abc","a.txt");

1。创建功能
public boolean createNewFile():创建一个新的文件 如果存在这样的文件,就不创建了
public boolean mkdirs():创建文件夹,如果父文件夹不存在,会帮你创建出来
      可以创建多层目录 当然也可以创建单层目录

如果创建文件或文件夹时没有写盘符路径,默认在项目路径下

相对路径:没有带盘符的路径

绝对路径:带有盘符的路径

2。删除功能

public boolean delete():删除文件或者文件夹
   注意:删除文件夹时 这个文件夹是空文件夹 如果这个文件夹里面有文件,则不能删除

 
而且Java中的删除工作不走回收站,删除须谨慎
3。重命名功能

public boolean renameTo(File dest):把文件重命名为指定的文件路径

如果路径名相同,就是改名。

如果路径名不同,就是改名并剪切。

4。判断功能

public boolean isDirectory():判断是否是目录
 public boolean isFile(): 判断是否是文件
public boolean exists(): 判断是否存在
public boolean canRead(): 判断是否可读
 public boolean canWrite(): 判断是否可写
  public boolean isHidden(): 判断是否隐藏


5。获取功能

public String getAbsolutePath(): 获取绝对路径
public String getPath():  

  • 1
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值