最近学java给输入输出流困扰了很久。按我的理解,输入流就是往内存方向的,可以read.输出流就是内存往外方向的,可以write.可感觉不是很对。哪位大大能稍微给我形象点解释下呵,不胜感激。

解决方案 »

  1.   

    举个不形象的例子:
    我们看日记就相当于read。看的时候可以细看,一个字一个字的看。相当于read。也可以一行一行的粗略的看。相当于readline。
    写日记就相当于流输出的过程。流这一章用了大量的装饰器设计模式。先好好的理解这个模式。再去阅读这一章可能会更好的理解。
      

  2.   

    这样理解吧! 当我们写一个Java程序的时候,我们需要从某些地方获得数据来处理,就是输入。而当我们需要把个程序运行的某些结果写进某些地方,则是输出。Java IO流的读取和写入的地方可能是外存设备(比如文件,网络),也可能是内存的某些结构(比如字节数组:ByteArrayInputStream, ByteArrayOutputStream)。所以并不像LZ所说的。只要站在Java程序运行的角度,需要把数据拿到程序里面来处理的,就是输入流。而需要把运行好的数据写到某些地方的,就是输出。
      

  3.   

    介绍一本超级好好好书,写的绝对基础,而且通俗易懂:O_'Reilly出版的《Java IO》和《Java NIO》。强烈建议看英文,即使用Google在线翻译,也比看中文版的翻译强不知道多少倍?  
      

  4.   

    看你从什么角度去看了。
    read:就是把数据读入你现在正在编写的程序;
    write:是把当前正在编写的程序里面的内容输出到其他地方。
    比如:
       你现在正在编写一个从文件读取数据的阅读器,当你对阅读器本身编程时,read就是从文件里面读数据到程序里面,write是把阅读器里面的数据写到文件里面。
       当你操作文件的时候,read,就是把阅读器里面的数据保存到文件,write就是把文件里面的数据输出到阅读器。
       语文学的不好,希望能对你有点帮助吧。
      

  5.   

    是read还是write都是以java虚拟机来说的。
      

  6.   

    从代码的角度看:
    Read 读  Input 向里读
    Write写 output 向外写