java.io.DataInputStream#readUnsignedShort ( )源码实例Demo

下面列出了java.io.DataInputStream#readUnsignedShort ( ) 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。

源代码1 项目: letv   文件: io.java
public io a(InputStream inputStream) throws IOException {
    if (inputStream == null) {
        return null;
    }
    DataInputStream anonymousClass2 = new DataInputStream(this, inputStream) {
        final /* synthetic */ a a;

        public void close() {
        }
    };
    io ioVar = new io();
    short readShort = anonymousClass2.readShort();
    if (readShort == (short) 0) {
        return null;
    }
    ioVar.c = new byte[readShort];
    anonymousClass2.readFully(ioVar.c);
    if (anonymousClass2.readUnsignedShort() == 0) {
    }
    return ioVar;
}
 
源代码2 项目: gemfirexd-oss   文件: CompiledCode.java
CompiledCode( byte[] code_block ) throws IOException {
    int idx;
    
    ByteArrayInputStream bis = new ByteArrayInputStream(code_block);
    DataInputStream source = new DataInputStream(bis);

    max_stack = source.readUnsignedShort();
    max_locals = source.readUnsignedShort();
    code_length = source.readInt();
    code = new byte[code_length];
    source.read(code);
    exception_table_length = source.readUnsignedShort();
    exceptionTable = new ExceptionTableEntry[exception_table_length];
    for (int i=0; i<exception_table_length; i++) {
      exceptionTable[i] = new ExceptionTableEntry(source);
    }
    attributes_count = source.readUnsignedShort();
    attributes_info = new CompiledAttribute[attributes_count];
    for (idx=0; idx<attributes_count; idx++) {
        attributes_info[idx] = new CompiledAttribute(source);
    }
}
 
源代码3 项目: dragonwell8_jdk   文件: BinaryMember.java
/**
 * Get exceptions
 */
public ClassDeclaration[] getExceptions(Environment env) {
    if ((!isMethod()) || (exp != null)) {
        return exp;
    }
    byte data[] = getAttribute(idExceptions);
    if (data == null) {
        return new ClassDeclaration[0];
    }

    try {
        BinaryConstantPool cpool = ((BinaryClass)getClassDefinition()).getConstants();
        DataInputStream in = new DataInputStream(new ByteArrayInputStream(data));
        // JVM 4.7.5 Exceptions_attribute.number_of_exceptions
        int n = in.readUnsignedShort();
        exp = new ClassDeclaration[n];
        for (int i = 0 ; i < n ; i++) {
            // JVM 4.7.5 Exceptions_attribute.exception_index_table[]
            exp[i] = cpool.getDeclaration(env, in.readUnsignedShort());
        }
        return exp;
    } catch (IOException e) {
        throw new CompilerError(e);
    }
}
 
源代码4 项目: netbeans   文件: VerificationTypeInfo.java
static VerificationTypeInfo loadVerificationTypeInfo(DataInputStream in, ConstantPool pool) 
  throws IOException {
    int tag = in.readUnsignedByte();
    switch (tag) {
        case ITEM_Top: return new TopVariableInfo();
        case ITEM_Integer: return new IntegerVariableInfo();
        case ITEM_Float: return new FloatVariableInfo();
        case ITEM_Long: return new LongVariableInfo();
        case ITEM_Double: return new DoubleVariableInfo();
        case ITEM_Null: return new NullVariableInfo();
        case ITEM_UninitializedThis: return new UninitializedThisVariableInfo();
        case ITEM_Object: {
            int cpool_index = in.readUnsignedShort();
            return new ObjectVariableInfo(pool.get(cpool_index));
        }
        case ITEM_Uninitialized: {
            int offset = in.readUnsignedShort();
            return new UninitializedVariableInfo(offset);
        }
        default:
            throw new InvalidClassFormatException("invalid verification_type_info tag: " + tag);
    }
}
 
源代码5 项目: netbeans   文件: BootstrapMethod.java
BootstrapMethod(DataInputStream in, ConstantPool pool) throws IOException {
    this.methodRef = in.readUnsignedShort();
    int args = in.readUnsignedShort();
    arguments = new int[args];
    for (int i = 0; i < args; i++) {
        arguments[i] = in.readUnsignedShort();
    }
}
 
源代码6 项目: jdk8u60   文件: AiffFileReader.java
/**
 * read_ieee_extended
 * Extended precision IEEE floating-point conversion routine.
 * @argument DataInputStream
 * @return double
 * @exception IOException
 */
private double read_ieee_extended(DataInputStream dis) throws IOException {

    double f = 0;
    int expon = 0;
    long hiMant = 0, loMant = 0;
    long t1, t2;
    double HUGE = ((double)3.40282346638528860e+38);


    expon = dis.readUnsignedShort();

    t1 = (long)dis.readUnsignedShort();
    t2 = (long)dis.readUnsignedShort();
    hiMant = t1 << 16 | t2;

    t1 = (long)dis.readUnsignedShort();
    t2 = (long)dis.readUnsignedShort();
    loMant = t1 << 16 | t2;

    if (expon == 0 && hiMant == 0 && loMant == 0) {
        f = 0;
    } else {
        if (expon == 0x7FFF)
            f = HUGE;
        else {
            expon -= 16383;
            expon -= 31;
            f = (hiMant * Math.pow(2, expon));
            expon -= 32;
            f += (loMant * Math.pow(2, expon));
        }
    }

    return f;
}
 
源代码7 项目: tinydnssd   文件: MDNSDiscover.java
private static SRV decodeSRV(byte[] srvData, byte[] packetData, int packetLength) throws IOException {
    DataInputStream dis = new DataInputStream(new ByteArrayInputStream(srvData));
    SRV srv = new SRV();
    srv.priority = dis.readUnsignedShort();
    srv.weight = dis.readUnsignedShort();
    srv.port = dis.readUnsignedShort();
    srv.target = decodeFQDN(dis, packetData, packetLength);
    if (DEBUG) System.out.printf("Priority: %d Weight: %d Port: %d Target: %s%n", srv.priority, srv.weight, srv.port, srv.target);
    return srv;
}
 
源代码8 项目: cfr   文件: AbstractBackedByteData.java
@Override
public int getU2At(long o) throws ConfusedCFRException {
    // Let's find an EFFICIENT way to do this later!
    DataInputStream dis = rawDataAsStream((int) o, 2);
    try {
        return dis.readUnsignedShort();
    } catch (Exception e) {
        throw new ConfusedCFRException(e);
    }
}
 
/**
    * Reads TLM marker segment and realigns the codestream where the next
    * marker should be found. Informations stored in these fields are
    * currently NOT taken into account.
    *
    * @param ehs The encoder header stream.
    *
    * @exception IOException If an I/O error occurs while reading from the
    * encoder header stream
    * */
   private void readTLM(DataInputStream ehs) throws IOException {
int length;

length = ehs.readUnsignedShort();
//Ignore all informations contained
ehs.skipBytes(length-2);

       FacilityManager.getMsgLogger().
           printmsg(MsgLogger.INFO,"Skipping unsupported TLM marker");
   }
 
源代码10 项目: openjdk-jdk8u   文件: AiffFileReader.java
/**
 * read_ieee_extended
 * Extended precision IEEE floating-point conversion routine.
 * @argument DataInputStream
 * @return double
 * @exception IOException
 */
private double read_ieee_extended(DataInputStream dis) throws IOException {

    double f = 0;
    int expon = 0;
    long hiMant = 0, loMant = 0;
    long t1, t2;
    double HUGE = ((double)3.40282346638528860e+38);


    expon = dis.readUnsignedShort();

    t1 = (long)dis.readUnsignedShort();
    t2 = (long)dis.readUnsignedShort();
    hiMant = t1 << 16 | t2;

    t1 = (long)dis.readUnsignedShort();
    t2 = (long)dis.readUnsignedShort();
    loMant = t1 << 16 | t2;

    if (expon == 0 && hiMant == 0 && loMant == 0) {
        f = 0;
    } else {
        if (expon == 0x7FFF)
            f = HUGE;
        else {
            expon -= 16383;
            expon -= 31;
            f = (hiMant * Math.pow(2, expon));
            expon -= 32;
            f += (loMant * Math.pow(2, expon));
        }
    }

    return f;
}
 
源代码11 项目: openjdk-8-source   文件: BinaryConstantPool.java
/**
 * Constructor
 */
BinaryConstantPool(DataInputStream in) throws IOException {
    // JVM 4.1 ClassFile.constant_pool_count
    types = new byte[in.readUnsignedShort()];
    cpool = new Object[types.length];
    for (int i = 1 ; i < cpool.length ; i++) {
        int j = i;
        // JVM 4.4 cp_info.tag
        switch(types[i] = in.readByte()) {
          case CONSTANT_UTF8:
            cpool[i] = in.readUTF();
            break;

          case CONSTANT_INTEGER:
            cpool[i] = new Integer(in.readInt());
            break;
          case CONSTANT_FLOAT:
            cpool[i] = new Float(in.readFloat());
            break;
          case CONSTANT_LONG:
            cpool[i++] = new Long(in.readLong());
            break;
          case CONSTANT_DOUBLE:
            cpool[i++] = new Double(in.readDouble());
            break;

          case CONSTANT_CLASS:
          case CONSTANT_STRING:
            // JVM 4.4.3 CONSTANT_String_info.string_index
            // or JVM 4.4.1 CONSTANT_Class_info.name_index
            cpool[i] = new Integer(in.readUnsignedShort());
            break;

          case CONSTANT_FIELD:
          case CONSTANT_METHOD:
          case CONSTANT_INTERFACEMETHOD:
          case CONSTANT_NAMEANDTYPE:
            // JVM 4.4.2 CONSTANT_*ref_info.class_index & name_and_type_index
            cpool[i] = new Integer((in.readUnsignedShort() << 16) | in.readUnsignedShort());
            break;

          case CONSTANT_METHODHANDLE:
            cpool[i] = readBytes(in, 3);
            break;
          case CONSTANT_METHODTYPE:
            cpool[i] = readBytes(in, 2);
            break;
          case CONSTANT_INVOKEDYNAMIC:
            cpool[i] = readBytes(in, 4);
            break;

          case 0:
          default:
            throw new ClassFormatError("invalid constant type: " + (int)types[i]);
        }
    }
}
 
源代码12 项目: bistoury   文件: StructTypeAnnotationAttribute.java
private static TypeAnnotation parse(DataInputStream data, ConstantPool pool) throws IOException {
    int targetType = data.readUnsignedByte();
    int target = targetType << 24;

    switch (targetType) {
        case TypeAnnotation.CLASS_TYPE_PARAMETER:
        case TypeAnnotation.METHOD_TYPE_PARAMETER:
        case TypeAnnotation.METHOD_PARAMETER:
            target |= data.readUnsignedByte();
            break;

        case TypeAnnotation.SUPER_TYPE_REFERENCE:
        case TypeAnnotation.CLASS_TYPE_PARAMETER_BOUND:
        case TypeAnnotation.METHOD_TYPE_PARAMETER_BOUND:
        case TypeAnnotation.THROWS_REFERENCE:
        case TypeAnnotation.CATCH_CLAUSE:
        case TypeAnnotation.EXPR_INSTANCEOF:
        case TypeAnnotation.EXPR_NEW:
        case TypeAnnotation.EXPR_CONSTRUCTOR_REF:
        case TypeAnnotation.EXPR_METHOD_REF:
            target |= data.readUnsignedShort();
            break;

        case TypeAnnotation.TYPE_ARG_CAST:
        case TypeAnnotation.TYPE_ARG_CONSTRUCTOR_CALL:
        case TypeAnnotation.TYPE_ARG_METHOD_CALL:
        case TypeAnnotation.TYPE_ARG_CONSTRUCTOR_REF:
        case TypeAnnotation.TYPE_ARG_METHOD_REF:
            data.skipBytes(3);
            break;

        case TypeAnnotation.LOCAL_VARIABLE:
        case TypeAnnotation.RESOURCE_VARIABLE:
            data.skipBytes(data.readUnsignedShort() * 6);
            break;

        case TypeAnnotation.FIELD:
        case TypeAnnotation.METHOD_RETURN_TYPE:
        case TypeAnnotation.METHOD_RECEIVER:
            break;

        default:
            throw new RuntimeException("unknown target type: " + targetType);
    }

    int pathLength = data.readUnsignedByte();
    byte[] path = null;
    if (pathLength > 0) {
        path = new byte[2 * pathLength];
        data.readFully(path);
    }

    AnnotationExprent annotation = StructAnnotationAttribute.parseAnnotation(data, pool);

    return new TypeAnnotation(target, path, annotation);
}
 
源代码13 项目: gemfirexd-oss   文件: CompiledClass.java
/**
 * read a ClassFile structure from the given input source (usually a file)
 */
public CompiledClass( DataInputStream source ) throws IOException {
    int idx;

    magic  = (long)source.readInt();
    minor_version = source.readUnsignedShort();
    major_version = source.readUnsignedShort();
    // the first constant-pool slot is reserved by Java and is not in the classes file
    constant_pool_count = source.readUnsignedShort();
    // read the constant pool list
    constant_pool = new Cp[constant_pool_count];
    constant_pool[0] = null;
    for (idx=1; idx<constant_pool_count; idx++) {
        constant_pool[idx] = Cp.readCp(source);
         // from Venkatesh: workaround for Javasoft hack
         //   From the Java Virtual Machine Specification,
         //   all eight-byte constants take up two spots in the constant pool.
         //   If this is the nth item in the constant pool, then the next
         //   item will be numbered n+2.
        if ((constant_pool[idx] instanceof CpLong) ||
           (constant_pool[idx] instanceof CpDouble)) idx++;
    }
    access_flags = source.readUnsignedShort();
    this_class = source.readUnsignedShort();
    super_class = source.readUnsignedShort();
    interfaces_count = source.readUnsignedShort();
    // read the interfaces list (ptrs into constant_pool)
    interfaces = new int[interfaces_count];
    for (idx=0; idx<interfaces_count; idx++) {
        interfaces[idx] = source.readUnsignedShort();
    }
    fields_count = source.readUnsignedShort();
    // read the fields list (only includes this class, not inherited variables)
    fields = new CompiledField[fields_count];
    for (idx=0; idx<fields_count; idx++) {
        fields[idx] = new CompiledField(source, this);
    }
    methods_count = source.readUnsignedShort();
    // read the methods list
    methods = new CompiledMethod[methods_count];
    for (idx=0; idx<methods_count; idx++) {
        methods[idx] = new CompiledMethod(source, this);
    }
    attributes_count = source.readUnsignedShort();
    // read the attributes
    attributes = new CompiledAttribute[attributes_count];
    for (idx=0; idx<attributes_count; idx++) {
        attributes[idx] = new CompiledAttribute(source);
    }
}
 
源代码14 项目: amidst   文件: RealClassBuilder.java
private RealClassConstant<Void> readInvokeDynamic(DataInputStream stream, byte type) throws IOException {
	stream.readUnsignedShort();
	stream.readUnsignedShort();
	// return a dummy
	return new RealClassConstant<Void>(type, null);
}
 
源代码15 项目: j2ssh-maverick   文件: Socks5Message.java
/**
   Initialises Message from the stream. Reads server response or client 
   request from given stream.
   
   @param in Input stream to read response from.
   @param clinetMode If true read server response, else read client request.
   @throws SocksException If server response code is not SOCKS_SUCCESS(0) and
   reading in client mode, or if any error with protocol occurs.
   @throws IOException If any error happens with I/O.
 */
 public void read(InputStream in,boolean clientMode) throws SocksException,
                                         IOException{
    data = null;
    ip = null;

    DataInputStream di = new DataInputStream(in);

    version = di.readUnsignedByte();
    command = di.readUnsignedByte();
    if(clientMode && command != 0)
      throw new SocksException(command);

    @SuppressWarnings("unused")
int reserved = di.readUnsignedByte();
    addrType = di.readUnsignedByte();

    byte addr[];

    switch(addrType){
       case SOCKS_ATYP_IPV4:
          addr = new byte[4];
          di.readFully(addr);
          host = bytes2IPV4(addr,0);
       break;
       case SOCKS_ATYP_IPV6:
         addr = new byte[SOCKS_IPV6_LENGTH];//I believe it is 16 bytes,huge!
         di.readFully(addr);
         host = bytes2IPV6(addr,0);
       break;
       case SOCKS_ATYP_DOMAINNAME:
         //System.out.println("Reading ATYP_DOMAINNAME");
         addr = new byte[di.readUnsignedByte()];//Next byte shows the length
         di.readFully(addr);
         host = new String(addr);
       break;
       default:
          throw(new SocksException(Proxy.SOCKS_JUST_ERROR));
    }

    port = di.readUnsignedShort();

    if(addrType != SOCKS_ATYP_DOMAINNAME && doResolveIP){
       try{
          ip = InetAddress.getByName(host);
       }catch(UnknownHostException uh_ex){
       }
    }
 }
 
源代码16 项目: amidst   文件: RealClassBuilder.java
private RealClassConstant<Void> readInvokeDynamic(DataInputStream stream, byte type) throws IOException {
	stream.readUnsignedShort();
	stream.readUnsignedShort();
	// return a dummy
	return new RealClassConstant<Void>(type, null);
}
 
源代码17 项目: TencentKona-8   文件: BinaryConstantPool.java
/**
 * Constructor
 */
BinaryConstantPool(DataInputStream in) throws IOException {
    // JVM 4.1 ClassFile.constant_pool_count
    types = new byte[in.readUnsignedShort()];
    cpool = new Object[types.length];
    for (int i = 1 ; i < cpool.length ; i++) {
        int j = i;
        // JVM 4.4 cp_info.tag
        switch(types[i] = in.readByte()) {
          case CONSTANT_UTF8:
            cpool[i] = in.readUTF();
            break;

          case CONSTANT_INTEGER:
            cpool[i] = new Integer(in.readInt());
            break;
          case CONSTANT_FLOAT:
            cpool[i] = new Float(in.readFloat());
            break;
          case CONSTANT_LONG:
            cpool[i++] = new Long(in.readLong());
            break;
          case CONSTANT_DOUBLE:
            cpool[i++] = new Double(in.readDouble());
            break;

          case CONSTANT_CLASS:
          case CONSTANT_STRING:
            // JVM 4.4.3 CONSTANT_String_info.string_index
            // or JVM 4.4.1 CONSTANT_Class_info.name_index
            cpool[i] = new Integer(in.readUnsignedShort());
            break;

          case CONSTANT_FIELD:
          case CONSTANT_METHOD:
          case CONSTANT_INTERFACEMETHOD:
          case CONSTANT_NAMEANDTYPE:
            // JVM 4.4.2 CONSTANT_*ref_info.class_index & name_and_type_index
            cpool[i] = new Integer((in.readUnsignedShort() << 16) | in.readUnsignedShort());
            break;

          case CONSTANT_METHODHANDLE:
            cpool[i] = readBytes(in, 3);
            break;
          case CONSTANT_METHODTYPE:
            cpool[i] = readBytes(in, 2);
            break;
          case CONSTANT_INVOKEDYNAMIC:
            cpool[i] = readBytes(in, 4);
            break;

          case 0:
          default:
            throw new ClassFormatError("invalid constant type: " + (int)types[i]);
        }
    }
}
 
源代码18 项目: awacs   文件: ConstantPool.java
public ConstantPool(DataInputStream in) throws IOException {
  int size = in.readUnsignedShort();
  pool = new ArrayList<>(size);
  BitSet[] nextPass = {new BitSet(size), new BitSet(size), new BitSet(size)};

  // first dummy constant
  pool.add(null);

  // first pass: read the elements
  for (int i = 1; i < size; i++) {
    byte tag = (byte)in.readUnsignedByte();

    switch (tag) {
      case CodeConstants.CONSTANT_Utf8:
        pool.add(new PrimitiveConstant(CodeConstants.CONSTANT_Utf8, in.readUTF()));
        break;

      case CodeConstants.CONSTANT_Integer:
        pool.add(new PrimitiveConstant(CodeConstants.CONSTANT_Integer, Integer.valueOf(in.readInt())));
        break;

      case CodeConstants.CONSTANT_Float:
        pool.add(new PrimitiveConstant(CodeConstants.CONSTANT_Float, Float.valueOf(in.readFloat())));
        break;

      case CodeConstants.CONSTANT_Long:
        pool.add(new PrimitiveConstant(CodeConstants.CONSTANT_Long, Long.valueOf(in.readLong())));
        pool.add(null);
        i++;
        break;

      case CodeConstants.CONSTANT_Double:
        pool.add(new PrimitiveConstant(CodeConstants.CONSTANT_Double, Double.valueOf(in.readDouble())));
        pool.add(null);
        i++;
        break;

      case CodeConstants.CONSTANT_Class:
      case CodeConstants.CONSTANT_String:
      case CodeConstants.CONSTANT_MethodType:
        pool.add(new PrimitiveConstant(tag, in.readUnsignedShort()));
        nextPass[0].set(i);
        break;

      case CodeConstants.CONSTANT_NameAndType:
        pool.add(new LinkConstant(tag, in.readUnsignedShort(), in.readUnsignedShort()));
        nextPass[0].set(i);
        break;

      case CodeConstants.CONSTANT_Fieldref:
      case CodeConstants.CONSTANT_Methodref:
      case CodeConstants.CONSTANT_InterfaceMethodref:
      case CodeConstants.CONSTANT_InvokeDynamic:
        pool.add(new LinkConstant(tag, in.readUnsignedShort(), in.readUnsignedShort()));
        nextPass[1].set(i);
        break;

      case CodeConstants.CONSTANT_MethodHandle:
        pool.add(new LinkConstant(tag, in.readUnsignedByte(), in.readUnsignedShort()));
        nextPass[2].set(i);
        break;
    }
  }

  // resolving complex pool elements
  for (BitSet pass : nextPass) {
    int idx = 0;
    while ((idx = pass.nextSetBit(idx + 1)) > 0) {
      pool.get(idx).resolveConstant(this);
    }
  }

  // get global constant pool interceptor instance, if any available
  interceptor = DecompilerContext.getPoolInterceptor();
}
 
源代码19 项目: whyline   文件: NameAndTypeInfo.java
public NameAndTypeInfo(ConstantPool pool, DataInputStream in) throws IOException {

    	super(pool);
        indexOfName = in.readUnsignedShort();
        indexOfTypeDescriptor = in.readUnsignedShort();
    
    }
 
源代码20 项目: JWebAssembly   文件: MethodInfo.java
/**
 * Read the method_info structure http://docs.oracle.com/javase/specs/jvms/se7/html/jvms-4.html#jvms-4.6
 * http://docs.oracle.com/javase/specs/jvms/se5.0/html/ClassFile.doc.html#1513
 *
 * @param input
 *            the stream of the class file
 * @param constantPool
 *            the ConstantPool of the class
 * @param classFile
 *            the declaring class file
 * @throws IOException
 *             if an I/O error occurs
 */
MethodInfo( DataInputStream input, ConstantPool constantPool, ClassFile classFile ) throws IOException {
    this.accessFlags = input.readUnsignedShort();
    this.name = (String)constantPool.get( input.readUnsignedShort() );
    this.description = (String)constantPool.get( input.readUnsignedShort() );
    this.constantPool = constantPool;
    this.attributes = new Attributes( input, constantPool );
    this.classFile = classFile;
}