Random access IO using the SeekableByteChannel : SeekableByteChannel « JDK 7 « Java






Random access IO using the SeekableByteChannel



import java.io.IOException;
import java.nio.ByteBuffer;
import java.nio.channels.SeekableByteChannel;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.nio.file.StandardOpenOption;

public class Test {

  public static void main(String[] args) throws IOException {
    Path path = Paths.get("/users.txt");

    final String newLine = System.getProperty("line.separator");
    try (SeekableByteChannel sbc = Files.newByteChannel(path,
        StandardOpenOption.WRITE)) {
      ByteBuffer buffer;
      long position = sbc.size();
      sbc.position(position);
      System.out.println("Position: " + sbc.position());

      buffer = ByteBuffer.wrap((newLine + "asdf").getBytes());
      sbc.write(buffer);
      System.out.println("Position: " + sbc.position());
      buffer = ByteBuffer.wrap((newLine + "asdf").getBytes());
      sbc.write(buffer);
      System.out.println("Position: " + sbc.position());
    }
  }
}

 








Related examples in the same category

1.SeekableByteChannel from Files.newByteChannel
2.Processing the contents of the entire file, Read the entire file
3.Writing to a file using the SeekableByteChannel interface