废话少谈,现在就直入我们的java中的io流了。
Java把这些不同来源和目标的数据都统一抽象为数据流。Java语言的输入输出功能是十分强大而灵活的,美中不足的是看上去输入输出的代码并不是很简洁,因为你往往需要包装许多不同的对象。
在Java类库中,IO部分的内容是很庞大的,因为它涉及的领域很广泛:标准输入输出,文件的操作,网络上的数据流,字符串流,对象流,zip文件流。(来自百度百科)
java的io 有四个抽象基类。分别是InputStream、OutputStream、Reader、Writer。
我也是新手,所以现在说说我都玩这些基类时,常遇到的问题。
1,一般的类,要使用他的话,就直接实例化之后用就可以了。例如,Scanner s=new Scanner(); 但是这四个基类可不能这样用,需要实力他们各自的非抽象子类才能用。
2,如果说按照我前面的方法来玩那四个基类,发现还是没法用(报错),我只能说声抱歉了,我应该首先说说使用这四个基类的前提。InputStream、OutputStream、Reader、Writer以及他们的子类都是在Java\jdk1.6.0_10\src.zip\java\io ,所以必须先导入要使用的类,一次导入IO的全部类也行。方法是:import java.io.*;
IO流的使用,就意味着异常的出现,为了程序能继续往下执行,就必须对异常进行处理。
有两种处理异常的方法:1,try{}catch(){} 2,直接throws (不建议使用)
我在这里就只说下try{}catch(){} 方法了。如:- import java.io.*;
- public class InOutStream{
- FileWriter fw=null;
- public static void main(String[] args){
- try{
- fw = new FileWriter("hello.txt");
- fw.write("我是要写入hello.txt的内容");
- }catch(IOException e){
- System.out.println(e.tostring());
- }
- finally{
- try{
- if(fw!=null)
- fw.close();
- }catch(IOException e){
- System.out.println(e.tostring());
- }
- }
- }
- }
复制代码
这里有一点点建议:
1,为了使例子中的fw能够在try中使用,最好把他放入成员变量的等级,可以先为空,后在try中初始化。
2,建议都要使用到finally,这样程序会更安全一点,并且在finally里关闭流(多个流时,都需要关闭,必能只关闭一个),小细节是,在关闭流时加个判断语句。
笔者不够细心,望多指教!
|
|