posts - 6,  comments - 8,  trackbacks - 0

         流是程序和外界进行数据交换的通道。分为输入流InputStream和输出流OutputStream。程序通过输入流从数据源读取数据,通过输出流向目的地写数据。
       在计算机世界里,信息就是数据,信息的交换就是数据流。就好比我们日常生活中的可以看到的水流及看不到的电流都是一种流。

     流是指一连串流动的字符(应该是字节),以先进先出的方式发送信息的通道。从传输上分为字节流和字符流,字节占8位,字符占16位。从使用上分为节点流和过滤流,其中过滤流包含处理流、包装流。
   下面我们来说一下流的创建,创建一个流,那么内存怎么分配呢?首先是对象分配内存,然后是OS分配资源内存。当这个流用完后,我们要进行的操作的是关闭这个流,Close通知OS释放资源(其中OS为操作系统)。
   输入流:
   InputStream类是所有输入流的父类,它是一个抽象类,不能被实例化。它提供了一系列和读取数据有关的方法。
   int read(),int read(byte[] b)从数据源读取数据
void close() 当完成读操作后,应该关闭输入流。
常用到的子类,ByteArrayInputStream字节数组输入流, FileInputStream文件输入流, StringBufferStream字符串缓冲输入流, ObjectInputStream对象输入流, FilterInputStream过滤输入流,其中过滤输入流中主要用到的是BufferedInputStream和DataInputStream(实现了DataInput接口,用于读取基本数据类型,如int 、long、float、double、boolean等)
      有输入流,就有相应的输出流,也就是说将intput改为output。但是在这里要着重提到的是随机读取文件类RandomAccessFile和对象流Object。本人对前者没有多少尝试,但对后者我就可以分享我的一点知识。对象流用到了对象的序列化和反序列化,序列化的意思就是把对象写到一个输入流中;反序列化是从一个输入流中读取一个对象。如果要采用对象输入输出流,那么这个对象的类必须实现可序列化接口。将对象也就是对象的成员变量作为整体,写到流中存储到文件里边。或者就是把对象放到数组里边,将这个对象数组存入到同一个文件中,对其进行操作,在没有数据库的情况下,我个人认为这是最好的保存对象信息方法。
   该睡觉了,先写到这里,明天将我所做的对象流代码写到上边,供大家参考交流
posted on 2010-03-17 22:59 张贝贝 阅读(1601) 评论(1)  编辑  收藏

只有注册用户登录后才能发表评论。


网站导航: