当前位置: 首页>>代码示例>>Java>>正文


Java Buffer类代码示例

本文整理汇总了Java中org.apache.hadoop.record.Buffer的典型用法代码示例。如果您正苦于以下问题:Java Buffer类的具体用法?Java Buffer怎么用?Java Buffer使用的例子?那么, 这里精选的类代码示例或许可以为您提供帮助。


Buffer类属于org.apache.hadoop.record包,在下文中一共展示了Buffer类的6个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。

示例1: read

import org.apache.hadoop.record.Buffer; //导入依赖的package包/类
/**
 * Reads a typed bytes sequence and converts it to a Java object. The first 
 * byte is interpreted as a type code, and then the right number of 
 * subsequent bytes are read depending on the obtained type.
 * @return the obtained object or null when the end of the file is reached
 * @throws IOException
 */
public Object read() throws IOException {
  int code = 1;
  try {
    code = in.readUnsignedByte();
  } catch (EOFException eof) {
    return null;
  }
  if (code == Type.BYTES.code) {
    return new Buffer(readBytes());
  } else if (code == Type.BYTE.code) {
    return readByte();
  } else if (code == Type.BOOL.code) {
    return readBool();
  } else if (code == Type.INT.code) {
    return readInt();
  } else if (code == Type.LONG.code) {
    return readLong();
  } else if (code == Type.FLOAT.code) {
    return readFloat();
  } else if (code == Type.DOUBLE.code) {
    return readDouble();
  } else if (code == Type.STRING.code) {
    return readString();
  } else if (code == Type.VECTOR.code) {
    return readVector();
  } else if (code == Type.LIST.code) {
    return readList();
  } else if (code == Type.MAP.code) {
    return readMap();
  } else if (code == Type.MARKER.code) {
    return null;
  } else if (50 <= code && code <= 200) { // application-specific typecodes
    return new Buffer(readBytes());
  } else {
    throw new RuntimeException("unknown type");
  }
}
 
开发者ID:naver,项目名称:hadoop,代码行数:45,代码来源:TypedBytesInput.java

示例2: readRawVector

import org.apache.hadoop.record.Buffer; //导入依赖的package包/类
/**
 * Reads the raw bytes following a <code>Type.VECTOR</code> code.
 * @return the obtained bytes sequence
 * @throws IOException
 */
public byte[] readRawVector() throws IOException {
  Buffer buffer = new Buffer();
  int length = readVectorHeader();
  buffer.append(new byte[] {
    (byte) Type.VECTOR.code,
    (byte) (0xff & (length >> 24)), (byte) (0xff & (length >> 16)),
    (byte) (0xff & (length >> 8)), (byte) (0xff & length)
  });
  for (int i = 0; i < length; i++) {
    buffer.append(readRaw());
  }
  return buffer.get();
}
 
开发者ID:naver,项目名称:hadoop,代码行数:19,代码来源:TypedBytesInput.java

示例3: readRawList

import org.apache.hadoop.record.Buffer; //导入依赖的package包/类
/**
 * Reads the raw bytes following a <code>Type.LIST</code> code.
 * @return the obtained bytes sequence
 * @throws IOException
 */
public byte[] readRawList() throws IOException {
  Buffer buffer = new Buffer(new byte[] { (byte) Type.LIST.code });
  byte[] bytes = readRaw();
  while (bytes != null) {
    buffer.append(bytes);
    bytes = readRaw();
  }
  buffer.append(new byte[] { (byte) Type.MARKER.code });
  return buffer.get();
}
 
开发者ID:naver,项目名称:hadoop,代码行数:16,代码来源:TypedBytesInput.java

示例4: readRawMap

import org.apache.hadoop.record.Buffer; //导入依赖的package包/类
/**
 * Reads the raw bytes following a <code>Type.MAP</code> code.
 * @return the obtained bytes sequence
 * @throws IOException
 */
public byte[] readRawMap() throws IOException {
  Buffer buffer = new Buffer();
  int length = readMapHeader();
  buffer.append(new byte[] {
    (byte) Type.MAP.code,
    (byte) (0xff & (length >> 24)), (byte) (0xff & (length >> 16)),
    (byte) (0xff & (length >> 8)), (byte) (0xff & length)
  });
  for (int i = 0; i < length; i++) {
    buffer.append(readRaw());
    buffer.append(readRaw());
  }
  return buffer.get();
}
 
开发者ID:naver,项目名称:hadoop,代码行数:20,代码来源:TypedBytesInput.java

示例5: write

import org.apache.hadoop.record.Buffer; //导入依赖的package包/类
/**
 * Writes a Java object as a typed bytes sequence.
 * 
 * @param obj the object to be written
 * @throws IOException
 */
public void write(Object obj) throws IOException {
  if (obj instanceof Buffer) {
    writeBytes((Buffer) obj);
  } else if (obj instanceof Byte) {
    writeByte((Byte) obj);
  } else if (obj instanceof Boolean) {
    writeBool((Boolean) obj);
  } else if (obj instanceof Integer) {
    writeInt((Integer) obj);
  } else if (obj instanceof Long) {
    writeLong((Long) obj);
  } else if (obj instanceof Float) {
    writeFloat((Float) obj);
  } else if (obj instanceof Double) {
    writeDouble((Double) obj);
  } else if (obj instanceof String) {
    writeString((String) obj);
  } else if (obj instanceof ArrayList) {
    writeVector((ArrayList) obj);
  } else if (obj instanceof List) {
    writeList((List) obj);
  } else if (obj instanceof Map) {
    writeMap((Map) obj);
  } else {
    throw new RuntimeException("cannot write objects of this type");
  }
}
 
开发者ID:naver,项目名称:hadoop,代码行数:34,代码来源:TypedBytesOutput.java

示例6: write

import org.apache.hadoop.record.Buffer; //导入依赖的package包/类
/**
 * Writes a Java object as a typed bytes sequence.
 * 
 * @param obj the object to be written
 * @throws IOException
 */
public void write(Object obj) throws IOException {
  if (obj instanceof Buffer) {
    writeBytes(((Buffer) obj).get());
  } else if (obj instanceof Byte) {
    writeByte((Byte) obj);
  } else if (obj instanceof Boolean) {
    writeBool((Boolean) obj);
  } else if (obj instanceof Integer) {
    writeInt((Integer) obj);
  } else if (obj instanceof Long) {
    writeLong((Long) obj);
  } else if (obj instanceof Float) {
    writeFloat((Float) obj);
  } else if (obj instanceof Double) {
    writeDouble((Double) obj);
  } else if (obj instanceof String) {
    writeString((String) obj);
  } else if (obj instanceof ArrayList) {
    writeVector((ArrayList) obj);
  } else if (obj instanceof List) {
    writeList((List) obj);
  } else if (obj instanceof Map) {
    writeMap((Map) obj);
  } else {
    throw new RuntimeException("cannot write objects of this type");
  }
}
 
开发者ID:Nextzero,项目名称:hadoop-2.6.0-cdh5.4.3,代码行数:34,代码来源:TypedBytesOutput.java


注:本文中的org.apache.hadoop.record.Buffer类示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。