java readdouble_Java RecordInput.readDouble方法代码示例

import org.apache.hadoop.record.RecordInput; //导入方法依赖的package包/类

/**

* read/skip bytes from stream based on a type

*/

public static void skip(RecordInput rin, String tag, TypeID typeID) throws IOException {

switch (typeID.typeVal) {

case TypeID.RIOType.BOOL:

rin.readBool(tag);

break;

case TypeID.RIOType.BUFFER:

rin.readBuffer(tag);

break;

case TypeID.RIOType.BYTE:

rin.readByte(tag);

break;

case TypeID.RIOType.DOUBLE:

rin.readDouble(tag);

break;

case TypeID.RIOType.FLOAT:

rin.readFloat(tag);

break;

case TypeID.RIOType.INT:

rin.readInt(tag);

break;

case TypeID.RIOType.LONG:

rin.readLong(tag);

break;

case TypeID.RIOType.MAP:

org.apache.hadoop.record.Index midx1 = rin.startMap(tag);

MapTypeID mtID = (MapTypeID) typeID;

for (; !midx1.done(); midx1.incr()) {

skip(rin, tag, mtID.getKeyTypeID());

skip(rin, tag, mtID.getValueTypeID());

}

rin.endMap(tag);

break;

case TypeID.RIOType.STRING:

rin.readString(tag);

break;

case TypeID.RIOType.STRUCT:

rin.startRecord(tag);

// read past each field in the struct

StructTypeID stID = (StructTypeID) typeID;

Iterator it = stID.getFieldTypeInfos().iterator();

while (it.hasNext()) {

FieldTypeInfo tInfo = it.next();

skip(rin, tag, tInfo.getTypeID());

}

rin.endRecord(tag);

break;

case TypeID.RIOType.VECTOR:

org.apache.hadoop.record.Index vidx1 = rin.startVector(tag);

VectorTypeID vtID = (VectorTypeID) typeID;

for (; !vidx1.done(); vidx1.incr()) {

skip(rin, tag, vtID.getElementTypeID());

}

rin.endVector(tag);

break;

default:

// shouldn't be here

throw new IOException("Unknown typeID when skipping bytes");

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值