java流

 

 

java 代码
  1. package cn.winlin.java.hospital;   
  2.   
  3. import java.io.*;   
  4. import java.util.zip.*;   
  5. import java.nio.*;   
  6. import java.nio.channels.FileChannel;   
  7. import java.nio.charset.Charset;   
  8.   
  9. /**  
  10.  * 压缩文件类  
  11.  * @author winlin  
  12.  */  
  13. public class zipFile {   
  14.  /**  
  15.   * 普通写  
  16.   */  
  17.  public void writeIt() throws IOException{   
  18.   String dest="";   
  19.   for(int i=0;i<5000;i++){   
  20.    dest+="abcdefg";   
  21.   }   
  22.   //基础流   
  23.   FileOutputStream fos=new FileOutputStream("d:\\test.java");   
  24.   //滤流类   
  25.   BufferedOutputStream bos=new BufferedOutputStream(fos);   
  26.   //读写转换器   
  27.   OutputStreamWriter osw=new OutputStreamWriter(bos);   
  28.   //读写器   
  29.   BufferedWriter bw=new BufferedWriter(osw);   
  30.   //写   
  31.   bw.write(dest);   
  32.   bw.close();   
  33.  }   
  34.     
  35.  /**  
  36.   * 压缩文件  
  37.   * @param path 文件路径  
  38.   */  
  39.  public void zipIt(String path) throws IOException{   
  40.   String dest="";   
  41.   for(int i=0;i<5000;i++){   
  42.    dest+="abcdefg";   
  43.   }   
  44.   //基础流   
  45.   FileOutputStream fos=new FileOutputStream(path);   
  46.   //派生流   
  47.   GZIPOutputStream gzos=new GZIPOutputStream(fos);   
  48.   //滤流类   
  49.   BufferedOutputStream bos=new BufferedOutputStream(gzos);   
  50.   //读写转换器   
  51.   OutputStreamWriter osw=new OutputStreamWriter(bos);   
  52.   //读写器   
  53.   BufferedWriter bw=new BufferedWriter(osw);   
  54.   //写   
  55.   bw.write(dest);   
  56.  }   
  57.     
  58.  /**  
  59.   * 读取字符串内容  
  60.   */  
  61.  public void writeString() throws IOException{   
  62.   String dest="2515424\n\r1254";   
  63.   //基础流   
  64.   StringBufferInputStream sbis=new StringBufferInputStream(dest);   
  65.   //滤流类   
  66.   BufferedInputStream bos=new BufferedInputStream(sbis);   
  67.   //读写转换器   
  68.   InputStreamReader isr=new InputStreamReader(bos);   
  69.   //读写器   
  70.   BufferedReader br=new BufferedReader(isr);   
  71.   System.out.println(br.readLine());   
  72.  }   
  73.     
  74.  /**  
  75.   * 屏幕输入  
  76.   * @throws IOException  
  77.   */  
  78.  public void readLine() throws IOException{   
  79.   //基础流   
  80.   //System.in;   
  81.   //滤流类   
  82.   BufferedInputStream bis=new BufferedInputStream(System.in);   
  83.   //读写转换器   
  84.   InputStreamReader isr=new InputStreamReader(bis);   
  85.   //读写器   
  86.   BufferedReader br=new BufferedReader(isr);   
  87.   //读   
  88.   String dest=br.readLine();   
  89.   if(dest!=null)   
  90.    System.out.println(dest);   
  91.  }   
  92.     
  93.  /**  
  94.   * 新读写引擎  
  95.   */  
  96.  public void newReader() throws IOException{   
  97.   //缓冲器   
  98.   ByteBuffer bb=ByteBuffer.allocate(1024);   
  99.   //文件流   
  100.   FileInputStream fis=new FileInputStream("d:\\test.java");   
  101.   //通道   
  102.   FileChannel fc=fis.getChannel();   
  103.   //操作   
  104.   while(fc.read(bb)!=-1){   
  105.    //准备读取缓冲区   
  106.    bb.flip();   
  107.    //编码输出缓冲区内容   
  108.    System.out.print(Charset.forName("gb2312").decode(bb).toString());   
  109.    //清空缓冲区   
  110.    bb.clear();   
  111.   }   
  112.  }   
  113.     
  114.  /**  
  115.   * 新写对象  
  116.   * @throws IOException  
  117.   */  
  118.  public void newWriter() throws IOException{   
  119.   //文件基础流   
  120.   FileOutputStream fos=new FileOutputStream("d:\\test.txt");   
  121.   //通道   
  122.   FileChannel fc=fos.getChannel();   
  123.   //操作   
  124.   BufferedReader br=new BufferedReader(new InputStreamReader(System.in));   
  125.   String dest=br.readLine();   
  126.   while(!dest.equals("exit")){   
  127.    //写   
  128.    fc.write(ByteBuffer.wrap(dest.getBytes("gb2312")));   
  129.    //   
  130.    dest=br.readLine();   
  131.   }   
  132.   fc.close();   
  133.  }   
  134.     
  135.  /**  
  136.   * 对象序列化流  
  137.   * @throws Exception  
  138.   */  
  139.  public void objectStream() throws Exception{   
  140.   Persistance obj=new Persistance();   
  141.   //基础流   
  142.   FileOutputStream fos=new FileOutputStream("d:\\object.java");   
  143.   //派生流   
  144.   ObjectOutputStream oos=new ObjectOutputStream(fos);   
  145.   //写   
  146.   oos.writeObject(obj);   
  147.   oos.close();   
  148.  }   
  149.     
  150.  public void objectReader() throws Exception{   
  151.   Persistance obj=null;   
  152.   //基础流   
  153.   FileInputStream fis = new FileInputStream("d:\\object.java");   
  154.   //派生流   
  155.   ObjectInputStream ois = new ObjectInputStream(fis);   
  156.   //读   
  157.   Object o=ois.readObject();   
  158.   ois.close();   
  159.   if(Persistance.class.isInstance(o))   
  160.   {   
  161.    obj=(Persistance)o;   
  162.    System.out.println(obj.name);   
  163.   }   
  164.  }   
  165. }   
  166.   
  167. //下面是类Persistance的序列化后的十六进制查看,和C++非常类似!   
  168.   
  169. package cn.winlin.java.hospital;   
  170. import java.io.*;   
  171.   
  172. /**  
  173.  * 对象序列化  
  174.  * @author winlin  
  175.  */  
  176. public class Persistance implements Serializable{   
  177.  static final long serialVersionUID = -19851212L;    
  178.     
  179.  /**  
  180.   * 名字  
  181.   */  
  182.  public String name="WinLin";   
  183. }   

你可能感兴趣的:(java)