io 流

io流  input output 输入输出流

java流的概念:java程序开辟的内存和其他的节点之间需要传输内容(读/写)必须建立一个管道来传输内容(字节和字符)那么这个管道就称之为流。

流的分类

  1. 按照方向:输入(读)  输出(写)
  2. 按照传输的内容    字节流和字符流
  3. 按照功能的区分   节点流和处理流

其中节点流流的两端直接接在节点上

处理流不能接在节点上,只能套在流的外面,相当于给普通的节点流增加了一些额外的功能

节点流:

InputStream   OutputStream   Reader       Writer

输入字节流   输出字节流    输入字符流   输出字符流

节点流的命名:以java内存以外的节点的名称+后缀来命名的

比如 FileInputStream  FileOutputStream   FileReader   FileWriter

要时间要资源所以要关闭  最后XX.close();

字节流中的write一次只能写一个字节出去,写中文用字符流

.read();第一次会把当前指向的字节返回回来

      第二若已经读到文件的末位,返回  -1;

复制的程序就是就是新从一个文件读进来在写出去

 

import java.io.*;

public class Test12 {

      public static void main(String args[]) throws Exception {

           FileReader fis = new FileReader("d:/a.txt");

        BufferedWriter bos = new BufferedWriter (new FileWriter("d:/b.txt"));

           int n = -1;

           while((n=fis.read())!=-1){

                 bos.write(n);  

           }

          

    bos.flush();

           fis.close();

           bos.close();

      }   

}

其中加了一个缓冲流就是给节点流增加了缓冲的功能 保护硬盘

数据流:

让java的数据可以直接传输与java相关数据类型的数据

Data流

例题

import java.io.*;

public class Test12a{

      public static void main(String atgs[]) throws Exception{

      //    DataOutputStream dos = new DataOutputStream(new FileOutputStream("d:/c.txt"));

           //dos.writeInt(1111);

           DataInputStream dis = new DataInputStream( new FileInputStream ("d:/c.txt"));

           int n = dis.readInt();

           System.out.println(n);

           dis.close();

      }

}

Object

java5.0新特性  序列化

对象想被序列化,就必须实现序列化的借口 seriallizable

把一个对象通过Object流写出去称之为序列化

利用Object流把读出来的内容直接封装成对象称之为反序列化

transient String password;(顺瞬时不被序列化)

例题:

import java.io.*;

public class Test12b {

      public static void main(String args[])throws Exception {

           /*ObjectOutputStream oos = new ObjectOutputStream (new FileOutputStream("d:/d.txt"));

           Person p = new Person();

           p.name = "arron";

           p.lv = 13;

           p.password = "aaaaa";

           oos.writeObject(p);*/

           ObjectInputStream ois = new ObjectInputStream(new FileInputStream("d:/d.txt"));

        Person p =(Person)ois.readObject();

        System.out.println(p.password);

           ois.close();

      }   

}

 

class Person implements Serializable {

      String name ;

      int lv;  

      transient String password;

     

}

posted @ 2012-07-16 23:20  会飞的辉  阅读(166)  评论(0编辑  收藏  举报