文件和IO总结

                   文件和IO总结

学习了文件和IO,应该好好总结一下了,刚开始学的时候可能会觉得有点难理解,但之后发现操作起来挺简单的,这要归功与SUN公司赋予java的强大功能吧。

         言归正传,先来讲文件。

         Java提供了文件类(File),用来对文件进行创建,查找,修改,删除等操作。当我们查看FileAPI文档时,会发现里面提供了很多方法用于对文件的操作,这样使我们的使用变得很简单。

         在学习文件时,需要了解路径。路径分两种,一种是绝对路径,另外一种是相对路径。有一个比较简单的方法来区分两者,如果路径里带有盘符,那么这就是一个绝对路径,如果是不带盘符的,那么这就是一个相对路径。我们一般采用相对路径。

         路径的分割符,在windows中用“\”或者“//”和“;”,在linux中用“/”和“:”。

        

下面来讲异常,java中异常分为两类,一类是继承Error,这类错误我们一般无法处理,另外一类是继承Exception,我们通常处理的就是这类错误。Java中许多可以预见的错误都必须预先编写代码处理。常用的关键字有try{   }catch(  ){   }throw{   }finallytry{   }catch(  ){   }表示如果没有错误则执行try里面的代码,如果有错误,则执行catch里面的代码。throw{   }是将错误抛出,这样就不用自己处理,极端情况下可以一直抛出,知道main方法也用它抛出异常,将异常丢给JVM处理,这样做虽然自己不用处理,但是却比较粗糙,如果发生错误差错不方便,而且如果最终做成产品,万一出错,就会把一大串英文字母给客户看,也有可能因此泄露自己的技术上的一些机密。Finally表示不管有没有出错,都要执行的代码。

        

讲了文件,接下来讲流。如同自然界的水流,气流,计算机里面的数据也形象地可以看成是流。我们可以用流来实现文件的保存,复制,和打开。

Java中提供了功能丰富的流。有字节流(InputStreamOutputStream),缓冲流(BufferedInputStreamBufferedOutputStream),基本数据流(DataInputStreamDataOutputStream),还有对象流(ObjectInputStreamObjectOutputStream)。这里面的其他几个流都继承自字节流,但需注意的是缓冲流和基本数据流不是字节流的直接子类,而是FilterInputStreamFilterOutStream的子类。而FilterInputStreamFilterOutStream才是字节流的直接子类。

用字节流进行操作时每一个字节要经过源文件——>系统内存——>虚拟内存——>程序——>系统内存——>目标文件。而缓冲流,则会在虚拟内存将字节进行积累,到一定大小再发送,所以缓冲流操作比字节流操作要快很多。

基本数据流,可以用来读写指定的基本数据类型的值。

对象流,可以用来读写对象。由于对象保存时只是保存对象的属性,不保存它的方法和构造方法。所以我们要先对对象进行序列化,实现java.io.serializable接口,实现这个接口的意义在于将对象的属性序列化而方法和构造方法没有序列化,那么保存的时候就只会保存属性。如果对象的一个属性是引用数据类型,那么这个引用数据类型的对象也要被序列化。如果一个对象中有不能被序列化地属性存在,那么整个对象的序列化就会失败。不希望对象的某个属性被序列化,可以在这个对象前面加上transient关键字。

 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值