当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Java ObjectInputStream readStreamHeader()用法及代码示例


ObjectInputStream 的 readStreamHeader() 方法用于允许子类读取和验证它们各自的流头。它读取并验证幻数和版本号。

用法

protected void readStreamHeader()throws IOException, StreamCorruptedException

参数

NA

返回

NA

抛出

IOException - 如果从底层 InputStream 读取时出现 I/O 错误

StreamCorruptedException - 如果流中的控制信息不一致。

例子1

import java.io.*;
public class ObjectInputStreamreadStreamHeaderExample1 extends ObjectInputStream {
   public ObjectInputStreamreadStreamHeaderExample1(InputStream in) throws IOException {
      super(in);
   }

   public static void main(String[] args) {
      String s = "welcome to javaTpoint";
      
      try {
         // create a new file with an ObjectOutputStream
         FileOutputStream outstream = new FileOutputStream("file1.txt");
         ObjectOutputStream objoutstream = new ObjectOutputStream(outstream);

         // write something in the file
         objoutstream.writeUTF(s);
         objoutstream.flush();

         // create an ObjectInputStream for the file we created before
         ObjectInputStreamreadStreamHeaderExample1 objinstream = new ObjectInputStreamreadStreamHeaderExample1(new FileInputStream("file1.txt"));
         
         // get the class for string and print the name
         System.out.println("" + objinstream.resolveObject(objinstream.readUTF()));
         objinstream.readStreamHeader();
      } catch (Exception ex) {    
      }
   }
}

输出:

welcome to javaTpoint

例子2

package ObjectInputStream;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.ObjectInputStream;
public class ObjectInputStreamreadStreamHeaderExample2  extends ObjectInputStream {
    public ObjectInputStreamreadStreamHeaderExample2(InputStream in)  throws IOException {
          super(in);
         this.readStreamHeader();
    }
   public static void main(String[] args) throws IOException {
      double[] carray = {21.0, 22.0 , 23.0 , 45.0 , 67.9 , 66.0};
     
      try {
         // create file output stream
       FileOutputStream   fileoutstream = new FileOutputStream("file1.txt");
         
         // create data output stream
        DataOutputStream dataoutstream = new DataOutputStream(fileoutstream);
         
         // for each byte in the buffer
         for (double b:carray) {
            // write character to the dos
            dataoutstream.writeDouble(b);
         }
         
         // force bytes to the underlying stream
         dataoutstream.flush();
         
         // create file input stream
         InputStream inpstream = new FileInputStream("file1.txt");
        //ObjectInputStreamresolveObjectExample2 objinstream = new ObjectInputStreamresolveObjectExample2(new FileInputStream("file1.txt"));
         // create new data input stream
        DataInputStream datainpstream = new DataInputStream(inpstream);
        
         // read till end of the stream
         for(int i=0;i<=carray.length;i++){ 
         
            // read double values in float format
            float c = datainpstream.readFloat();
          //  System.out.println("" + objinstream.resolveObject(objinstream.readUTF()));
            // print
            System.out.print("    "+c);
         } 
      } catch(Exception e) {
      } 
   }
}

输出:

2.828125    0.0    2.84375    0.0    2.859375    0.0    3.1015625




相关用法


注:本文由纯净天空筛选整理自 Java ObjectInputStream readStreamHeader() Method。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。