Converting text to and from ByteBuffers : ByteBuffer « File « Java Tutorial






import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.nio.ByteBuffer;
import java.nio.channels.FileChannel;
import java.nio.charset.Charset;

public class MainClass {
  private static final int BSIZE = 1024;

  public static void main(String[] args) throws Exception {
    FileChannel fc = new FileOutputStream("data2.txt").getChannel();
    fc.write(ByteBuffer.wrap("Some text".getBytes()));
    fc.close();
    fc = new FileInputStream("data2.txt").getChannel();
    ByteBuffer buff = ByteBuffer.allocate(BSIZE);
    fc.read(buff);
    buff.flip();

    System.out.println(buff.asCharBuffer());
    // Decode using this system's default Charset:
    buff.rewind();
    String encoding = System.getProperty("file.encoding");
    System.out.println("Decoded using " + encoding + ": " + Charset.forName(encoding).decode(buff));
    // Or, we could encode with something that will print:
    fc = new FileOutputStream("data2.txt").getChannel();
    fc.write(ByteBuffer.wrap("Some text".getBytes("UTF-16BE")));
    fc.close();

  }
}
/**/
????
Decoded using Cp1252: Some text








11.42.ByteBuffer
11.42.1.A ByteBuffer is a fixed-capacity buffer that holds byte values.
11.42.2.Create a ByteBuffer using a byte array
11.42.3.Create a non-direct ByteBuffer with a 10 byte capacity
11.42.4.Create a direct (memory-mapped) ByteBuffer with a 10 byte capacity.
11.42.5.Allocation automatically zeroes the ByteBuffer
11.42.6.Store and read a char array
11.42.7.Store and read a short
11.42.8.Rewind a ByteBuffer
11.42.9.Store and read an int
11.42.10.Store and read a long
11.42.11.Store and read a float
11.42.12.Store and read a double
11.42.13.ByteBuffer.hasRemaining()
11.42.14.Use while loop to read a ByteBuffer
11.42.15.Retrieve all bytes in the buffer
11.42.16.Retrieve bytes between the position and limit
11.42.17.Converting text to and from ByteBuffers with UTF-16BE
11.42.18.Converting text to and from ByteBuffers
11.42.19.Get the ByteBuffer's capacity
11.42.20.Use the absolute get().
11.42.21.Set the position
11.42.22.Use the relative get()
11.42.23.Get remaining byte count in a ByteBuffer
11.42.24.Set the limit for ByteBuffer
11.42.25.This convenience method sets the position to 0
11.42.26.Converting Between a ByteBuffer an a Byte Array
11.42.27.Putting Bytes into a ByteBuffer
11.42.28.Endian differences and data storage
11.42.29.Use FileChannel and ByteBuffer to Copy File
11.42.30.Read from a channel with a ByteBuffer
11.42.31.Test views of long elements in a ByteBuffer