`

java.io包

    博客分类:
  • java
阅读更多
 
java.io包难吗?2008-04-03 16:58java的io包很难吗?有人会说很难,一个拥有六七十个类的包,每个类里面又有大量的方法,确实是一个复杂的包,但是结构还算是非常清晰的,我们先

看看以下几个类,并把主要作用说一下:

1 OutputStream

2 InputStream

3 Reader

4 Writer

5 File

这几个类我们不看API都应该知道是什么意思,哪怕你没有过四级。File,当然是关于文件的类,文件的地址,文件的名称,文件的父目录,文件的子目录

……自己到api里面看看吧,反正一般的文件属性File类都提供的查看和操作的方法。

OutputStream,InputStream:输入输出流,很多人都讨厌java的io包绝大多数是因为这两个东西,开始我也挺讨厌的,输入输出经常搞混。特别是原来从

c学起的人更是搞不清,我开始认为输出吗,当然就是文件输出了,也就是读文件;输入就是向文件中输入,也就是写文件!大错特错,恰恰相反,正确的

是输入代表读文件,输出代表写文件。看样子java的前辈们都是逆向思维!不是的,这里是我们没有理解流的概念,流,像水流,我们的程序像一个水站

,没水了抽点水,有水了放点水,而文件就是长江黄河。我们从长江中抽了水(输入流),把水中加点盐搁点酒(操作),然后再把水(输出流)放到黄

河中去。好了,没明白的现在应该明白了,java所谓的流是相对于水站(程序),进水站(程序)的流叫做输入流,出水站(程序)的流叫做输出流,明

明白白,非常清晰吧!大家可能会问那么长江和黄河是什么,长江和黄河当然是有水或可以存水还或者创造水的地方:键盘,文件,网络端口,显示屏…

…至于那些可以做为输入流的始点还是输出流的终点(当然输入流的终点和输出流的始点都是水站)就看大家自己来判断,如果什么时候输出流的终点是

键盘的话要告诉我哦!!

Writer,Reader:写者和读者,有了流的概念,这两个家伙我们就比较好处理了,他们是一个养鱼的,一个抓鱼的 ,不过他们的本领要大一些,养鱼抓鱼

都得要水啊!鱼在水里,所以他们首先的任务是找到水 。他们可以从其他地方搞到水后来水站,Reader的儿子InputStreamReader可以从长江中(输入流

)中搞到水来,当然可以了!站在水站中不用动,长江水就来了。Reader的孙子FileReader更牛一些。它可以从淮河里搞到水,甚至你给他一个淮河的地

址,他就屁癫屁癫的就跑去了搞水了:FileReader fr=new FileReader("E://text.txt")搞到水后他们就开始放鱼的放鱼,抓鱼的抓鱼,但是他们的子

孙却各有神通,抓鱼的大小,方式各不相同。

例子:

A  FileReader reader = new FileReader("e://text.txt"); 
  BufferedReader br = new BufferedReader(reader);     
  String s1 =new String(); 
  while((s1 = br.readLine()) != null){
    list.add(s1);
  }
  br.close(); 
  reader.close(); 
  return doList(list);
  }catch(Exception e){
    e.printStackTrace();
    return null;
}
}

reader 找来了水,让 br抓, br可以一行一行的抓鱼,比FileReader快的多


B FileWriter fw=new FileWriter("E://text.txt")
fw.writer("hello world!")
fw 找到了养鱼的水潭,然后放了一条“hello world”的鱼

C System.out.println("helloworld!")
一个“helloworld”的输出水流流到了显示器上

D System.in.read(byte[])
一个键盘的输入流流到了程序中的byte[]中了


其他的一大堆类就是这五个类的子子孙孙,都有老祖宗的血脉,又有自己的绝活!!!

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics