All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.jn.langx.util.io.Writable Maven / Gradle / Ivy

Go to download

Java lang extensions for java6+, a supplement to , replacement of a Guava, commons-lang. Core utilities, Collection utilities, IO utilities, Cache, Configuration library ...

There is a newer version: 4.8.2
Show newest version
package com.jn.langx.util.io;


import java.io.DataInput;
import java.io.DataOutput;
import java.io.IOException;


/**
 * A serializable object which implements a simple, efficient, serialization
 * protocol, based on {@link DataInput} and {@link DataOutput}.
 * 

*

Any key or value type in the Hadoop Map-Reduce * framework implements this interface.

*

*

Implementations typically implement a static read(DataInput) * method which constructs a new instance, calls {@link #readFields(DataInput)} * and returns the instance.

*

*

Example:

*

 *     public class MyWritable implements Writable {
 *       // Some data
 *       private int counter;
 *       private long timestamp;
 * 

* public void write(DataOutput out) throws IOException { * out.writeInt(counter); * out.writeLong(timestamp); * } *

* public void readFields(DataInput in) throws IOException { * counter = in.readInt(); * timestamp = in.readLong(); * } *

* public static MyWritable read(DataInput in) throws IOException { * MyWritable w = new MyWritable(); * w.readFields(in); * return w; * } * } *

*/ public interface Writable { /** * Serialize the fields of this object to out. * * @param out DataOuput to serialize this object into. * @throws IOException */ void write(DataOutput out) throws IOException; /** * Deserialize the fields of this object from in. *

*

For efficiency, implementations should attempt to re-use storage in the * existing object where possible.

* * @param in DataInput to deseriablize this object from. * @throws IOException */ void readFields(DataInput in) throws IOException; }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy