Java之 异常,文件,io流

一   异常

在我们编写程序的时候,有时候会出现一些异常的情况。异常指不期而至的各种状况,比如:文件找不到、空指针异常、非法参数等。异常是一个事件,它发生在程序运行期间,干扰了正常的指令流程。而异常又分为两种情况,一种是编译异常,另外一种是运行时异常。编译异常出现的时候我们的eclipse在编译的时候就会给我们报错,而运行时异常在编译的时候不会报错,但是在程序运行的时候会报错。  在 Java 中,所有的异常都有一个共同祖先——Throwable。Throwable 指定代码中可用异常传播机制通过 Java 应用程序传输的任何问题的共性。Throwable 有两个重要的子类:Exception(异常)和 Error(错误),二者都是 Java 异常处理的重要子类,各自都包含大量子类。  那么我们在写程序的时候出现了异常情况怎么办呢?这时候就要我们去捕捉异常了,用try...catch语句去捕获异常:

try {  
    // 可能会发生异常的程序代码  
} catch (Type1 id1){  
    // 捕获并处置try抛出的异常类型Type1  
}  
catch (Type2 id2){  
     //捕获并处置try抛出的异常类型Type2  
}  
二 文件

在Java中我们如果要对特定的文件进行编辑,或者创建新的文件等等操作的话,就要用到Java中的跟File相关的类进行操作。File类在Java中主要用于命名文件、查询文件属性和处理文件目录。

File类共提供了三个不同的构造函数,以不同的参数形式灵活地接收文件和目录名信息。构造函数:
1)File (String   pathname)   
     例:File  f1=new File("FileTest1.txt"); //创建文件对象f1,f1所指的文件是在当前目录下创建的FileTest1.txt
2)File (String  parent  ,  String child)
     例:File f2=new  File(“D:\\dir1","FileTest2.txt") ;//  注意:D:\\dir1目录事先必须存在,否则异常
3)File (File    parent  , String child)
在File类中还有很多种方法可以调用,以用来编辑文件。
三 IO流

IO流可以实现对文件的输入输出等操作。那么什么是流呢?打个比方说就是生活中我们要将从水龙头流出的水引向别的地方,那么就要用到水管,而Java中的流就相当于水管的这个功能。 java.io包中包含了流式I/O所需要的所有类。在java.io包中有四个基本类:InputStream、OutputStream及Reader、Writer类,它们分别处理字节流和字符流。

而其中文件输入输出流是比较基本的流,它们可以用来关联文件,并且可以用来对文件进行操作,例如FileInputStream和FileOutputStream的应用

public class TestFile {  
    public static void main(String args[]) throws IOException {  
        try {  
            File inFile = new File("copy.java");  
            File outFile = new File("copy2.java");  
            FileInputStream finS = new FileInputStream(inFile);  
            FileOutputStream foutS = new FileOutputStream(outFile);  
            int c;  
            while ((c = finS.read()) != -1) {  
                foutS.write(c);  
            }  
            finS.close();  
            foutS.close();  
        } catch (Exception e) {
<span style="white-space:pre">			</span>e.printStackTrace();
<span style="white-space:pre">	</span>  }
    }  
  
}  

而字符流则是FileReader和FileWriter,它们的使用方法与 FileInputStream和FileOutputStream差不多。

IO流中,还有一些包装流。所谓包装流,例如缓冲输入输出流:BufferedInputStream/ BufferedOutputStream。缓冲流就是每一个数据流分配一个缓冲区,一个缓冲区就是一个临时存储数据的内存。这样可以减少访问硬盘的次数,提高传输效率。BufferedInputStream:当向缓冲流写入数据时候,数据先写到缓冲区,待缓冲区写满后,系统一次性将数据发送给输出设备。BufferedOutputStream :当从向缓冲流读取数据时候,系统先从缓冲区读出数据,待缓冲区为空时,系统再从输入设备读取数据到缓冲区。注意:包装流一般不能直接关联文件,它们只是用来包装相应的流,使别的流具有该流的功能。

1)将文件读入内存:

将BufferedInputStream与FileInputStream相接

  FileInputStream in=new  FileInputStream( “file1.txt ” );

  BufferedInputStream bin=new  BufferedInputStream( in); 

2)将内存写入文件:

将BufferedOutputStream与 FileOutputStream相接

FileOutputStreamout=new FileOutputStream(“file1.txt”);

BufferedOutputStream  bin=new BufferedInputStream(out);

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值