<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
		<id>http://jexp.ru/index.php?action=history&amp;feed=atom&amp;title=Java_Tutorial%2FFile%2FFileChannel</id>
		<title>Java Tutorial/File/FileChannel - История изменений</title>
		<link rel="self" type="application/atom+xml" href="http://jexp.ru/index.php?action=history&amp;feed=atom&amp;title=Java_Tutorial%2FFile%2FFileChannel"/>
		<link rel="alternate" type="text/html" href="http://jexp.ru/index.php?title=Java_Tutorial/File/FileChannel&amp;action=history"/>
		<updated>2026-04-07T04:13:22Z</updated>
		<subtitle>История изменений этой страницы в вики</subtitle>
		<generator>MediaWiki 1.30.0</generator>

	<entry>
		<id>http://jexp.ru/index.php?title=Java_Tutorial/File/FileChannel&amp;diff=5318&amp;oldid=prev</id>
		<title>Admin: 1 версия</title>
		<link rel="alternate" type="text/html" href="http://jexp.ru/index.php?title=Java_Tutorial/File/FileChannel&amp;diff=5318&amp;oldid=prev"/>
				<updated>2010-06-01T05:19:26Z</updated>
		
		<summary type="html">&lt;p&gt;1 версия&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;tr style=&quot;vertical-align: top;&quot; lang=&quot;ru&quot;&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← Предыдущая&lt;/td&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;Версия 05:19, 1 июня 2010&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; style=&quot;text-align: center;&quot; lang=&quot;ru&quot;&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(нет различий)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</summary>
		<author><name>Admin</name></author>	</entry>

	<entry>
		<id>http://jexp.ru/index.php?title=Java_Tutorial/File/FileChannel&amp;diff=5317&amp;oldid=prev</id>
		<title> в 17:44, 31 мая 2010</title>
		<link rel="alternate" type="text/html" href="http://jexp.ru/index.php?title=Java_Tutorial/File/FileChannel&amp;diff=5317&amp;oldid=prev"/>
				<updated>2010-05-31T17:44:27Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая страница&lt;/b&gt;&lt;/p&gt;&lt;div&gt;==  A channel for a physical file ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;A channel for a physical file: provides an efficient mechanism for reading, writing, and manipulating the file.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
import java.io.File;&lt;br /&gt;
import java.io.FileNotFoundException;&lt;br /&gt;
import java.io.FileOutputStream;&lt;br /&gt;
import java.nio.channels.FileChannel;&lt;br /&gt;
public class MainClass {&lt;br /&gt;
  public static void main(String[] a) {&lt;br /&gt;
    File aFile = new File(&amp;quot;C:/myFile.text&amp;quot;);&lt;br /&gt;
    FileOutputStream outputFile = null; // Place to store an output stream&lt;br /&gt;
                                        // reference&lt;br /&gt;
    try {&lt;br /&gt;
      // Create the stream opened to write&lt;br /&gt;
      outputFile = new FileOutputStream(aFile);&lt;br /&gt;
    } catch (FileNotFoundException e) {&lt;br /&gt;
      e.printStackTrace(System.err);&lt;br /&gt;
      System.exit(1);&lt;br /&gt;
    }&lt;br /&gt;
    // Get the channel for the file&lt;br /&gt;
    FileChannel outputChannel = outputFile.getChannel();&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Copying a file using channels and buffers ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
import java.io.FileInputStream;&lt;br /&gt;
import java.io.FileOutputStream;&lt;br /&gt;
import java.nio.ByteBuffer;&lt;br /&gt;
import java.nio.channels.FileChannel;&lt;br /&gt;
public class MainClass {&lt;br /&gt;
  private static final int BSIZE = 1024;&lt;br /&gt;
  public static void main(String[] args) throws Exception {&lt;br /&gt;
    FileChannel in = new FileInputStream(&amp;quot;source.txt&amp;quot;).getChannel(), out = new FileOutputStream(&lt;br /&gt;
        &amp;quot;target.txt&amp;quot;).getChannel();&lt;br /&gt;
    ByteBuffer buffer = ByteBuffer.allocate(BSIZE);&lt;br /&gt;
    while (in.read(buffer) != -1) {&lt;br /&gt;
      buffer.flip();&lt;br /&gt;
      out.write(buffer);&lt;br /&gt;
      buffer.clear();&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Create a read-only memory-mapped file ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
import java.io.File;&lt;br /&gt;
import java.io.RandomAccessFile;&lt;br /&gt;
import java.nio.ByteBuffer;&lt;br /&gt;
import java.nio.channels.FileChannel;&lt;br /&gt;
public class Main {&lt;br /&gt;
  public static void main(String[] argv) throws Exception {&lt;br /&gt;
    File file = new File(&amp;quot;filename&amp;quot;);&lt;br /&gt;
    FileChannel roChannel = new RandomAccessFile(file, &amp;quot;r&amp;quot;).getChannel();&lt;br /&gt;
    ByteBuffer roBuf = roChannel.map(FileChannel.MapMode.READ_ONLY, 0, (int) roChannel.size());&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Create a read-write memory-mapped file ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
import java.io.File;&lt;br /&gt;
import java.io.RandomAccessFile;&lt;br /&gt;
import java.nio.ByteBuffer;&lt;br /&gt;
import java.nio.channels.FileChannel;&lt;br /&gt;
public class Main {&lt;br /&gt;
  public static void main(String[] argv) throws Exception {&lt;br /&gt;
    FileChannel rwChannel = new RandomAccessFile(new File(&amp;quot;test.txt&amp;quot;), &amp;quot;rw&amp;quot;).getChannel();&lt;br /&gt;
    ByteBuffer wrBuf = rwChannel.map(FileChannel.MapMode.READ_WRITE, 0, (int) rwChannel.size());&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  File concatenation based on new IO ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
import java.io.FileOutputStream;&lt;br /&gt;
import java.io.IOException;&lt;br /&gt;
import java.io.RandomAccessFile;&lt;br /&gt;
import java.nio.ByteBuffer;&lt;br /&gt;
import java.nio.channels.FileChannel;&lt;br /&gt;
public class MainClass {&lt;br /&gt;
  public static void main(String[] args) throws IOException {&lt;br /&gt;
    if (args.length &amp;lt; 2) {&lt;br /&gt;
      System.err.println(&amp;quot;Usage: java MainClass inFile1 inFile2... outFile&amp;quot;);&lt;br /&gt;
      return;&lt;br /&gt;
    }&lt;br /&gt;
    ByteBuffer[] buffers = new ByteBuffer[args.length - 1];&lt;br /&gt;
    for (int i = 0; i &amp;lt; args.length - 1; i++) {&lt;br /&gt;
      RandomAccessFile raf = new RandomAccessFile(args[i], &amp;quot;r&amp;quot;);&lt;br /&gt;
      FileChannel channel = raf.getChannel();&lt;br /&gt;
      buffers[i] = channel.map(FileChannel.MapMode.READ_ONLY, 0, raf.length());&lt;br /&gt;
    }&lt;br /&gt;
    FileOutputStream outFile = new FileOutputStream(args[args.length - 1]);&lt;br /&gt;
    FileChannel out = outFile.getChannel();&lt;br /&gt;
    out.write(buffers);&lt;br /&gt;
    out.close();&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Get FileChannel from FileInputStream ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
import java.io.File;&lt;br /&gt;
import java.io.FileInputStream;&lt;br /&gt;
import java.io.IOException;&lt;br /&gt;
import java.nio.IntBuffer;&lt;br /&gt;
import java.nio.channels.FileChannel;&lt;br /&gt;
public class MainClass {&lt;br /&gt;
  public static void main(String[] args) throws IOException {&lt;br /&gt;
    FileChannel fc = new FileInputStream(new File(&amp;quot;temp.tmp&amp;quot;)).getChannel();&lt;br /&gt;
    IntBuffer ib = fc.map(FileChannel.MapMode.READ_ONLY, 0, fc.size()).asIntBuffer();&lt;br /&gt;
    while (ib.hasRemaining())&lt;br /&gt;
      ib.get();&lt;br /&gt;
    fc.close();&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Lock a FileChannel and release the lock ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
import java.io.FileOutputStream;&lt;br /&gt;
import java.nio.channels.FileLock;&lt;br /&gt;
public class MainClass {&lt;br /&gt;
  public static void main(String[] args) throws Exception {&lt;br /&gt;
    FileOutputStream fos = new FileOutputStream(&amp;quot;file.txt&amp;quot;);&lt;br /&gt;
    FileLock fl = fos.getChannel().tryLock();&lt;br /&gt;
    if (fl != null) {&lt;br /&gt;
      System.out.println(&amp;quot;Locked File&amp;quot;);&lt;br /&gt;
      Thread.sleep(100);&lt;br /&gt;
      fl.release();&lt;br /&gt;
      System.out.println(&amp;quot;Released Lock&amp;quot;);&lt;br /&gt;
    }&lt;br /&gt;
    fos.close();&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Locking Copier ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
import java.io.FileInputStream;&lt;br /&gt;
import java.io.FileOutputStream;&lt;br /&gt;
import java.io.IOException;&lt;br /&gt;
import java.nio.channels.FileChannel;&lt;br /&gt;
import java.nio.channels.FileLock;&lt;br /&gt;
public class MainClass {&lt;br /&gt;
  public static void main(String[] args) throws IOException {&lt;br /&gt;
    FileInputStream inFile = new FileInputStream(args[0]);&lt;br /&gt;
    FileOutputStream outFile = new FileOutputStream(args[1]);&lt;br /&gt;
    FileChannel inChannel = inFile.getChannel();&lt;br /&gt;
    FileChannel outChannel = outFile.getChannel();&lt;br /&gt;
    FileLock outLock = outChannel.lock();&lt;br /&gt;
    FileLock inLock = inChannel.lock(0, inChannel.size(), true);&lt;br /&gt;
    inChannel.transferTo(0, inChannel.size(), outChannel);&lt;br /&gt;
    outLock.release();&lt;br /&gt;
    inLock.release();&lt;br /&gt;
    inChannel.close();&lt;br /&gt;
    outChannel.close();&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  New IO Copier ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
import java.io.FileInputStream;&lt;br /&gt;
import java.io.FileOutputStream;&lt;br /&gt;
import java.io.IOException;&lt;br /&gt;
import java.nio.ByteBuffer;&lt;br /&gt;
import java.nio.channels.FileChannel;&lt;br /&gt;
public class MainClass {&lt;br /&gt;
  public static void main(String[] args) throws IOException {&lt;br /&gt;
    FileInputStream inFile = new FileInputStream(args[0]);&lt;br /&gt;
    FileOutputStream outFile = new FileOutputStream(args[1]);&lt;br /&gt;
    FileChannel inChannel = inFile.getChannel();&lt;br /&gt;
    FileChannel outChannel = outFile.getChannel();&lt;br /&gt;
    for (ByteBuffer buffer = ByteBuffer.allocate(1024 * 1024); inChannel.read(buffer) != -1; buffer&lt;br /&gt;
        .clear()) {&lt;br /&gt;
      buffer.flip();&lt;br /&gt;
      while (buffer.hasRemaining())&lt;br /&gt;
        outChannel.write(buffer);&lt;br /&gt;
    }&lt;br /&gt;
    inChannel.close();&lt;br /&gt;
    outChannel.close();&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  New IO Duplicator ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
import java.io.FileInputStream;&lt;br /&gt;
import java.io.FileOutputStream;&lt;br /&gt;
import java.io.IOException;&lt;br /&gt;
import java.nio.ByteBuffer;&lt;br /&gt;
import java.nio.channels.FileChannel;&lt;br /&gt;
public class MainClass {&lt;br /&gt;
  public static void main(String[] args) throws IOException {&lt;br /&gt;
    FileInputStream inFile = new FileInputStream(args[0]);&lt;br /&gt;
    FileOutputStream outFile = new FileOutputStream(args[1]);&lt;br /&gt;
    FileChannel inChannel = inFile.getChannel();&lt;br /&gt;
    FileChannel outChannel = outFile.getChannel();&lt;br /&gt;
    ByteBuffer buffer = ByteBuffer.allocate(1024 * 1024);&lt;br /&gt;
    int bytesRead = 0;&lt;br /&gt;
    while (bytesRead &amp;gt;= 0 || buffer.hasRemaining()) {&lt;br /&gt;
      if (bytesRead != -1)&lt;br /&gt;
        bytesRead = inChannel.read(buffer);&lt;br /&gt;
      buffer.flip();&lt;br /&gt;
      outChannel.write(buffer);&lt;br /&gt;
      buffer.rupact();&lt;br /&gt;
    }&lt;br /&gt;
    inChannel.close();&lt;br /&gt;
    outChannel.close();&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  New IO Transfer ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
import java.io.FileInputStream;&lt;br /&gt;
import java.io.FileOutputStream;&lt;br /&gt;
import java.io.IOException;&lt;br /&gt;
import java.nio.channels.FileChannel;&lt;br /&gt;
public class MainClass {&lt;br /&gt;
  public static void main(String[] args) throws IOException {&lt;br /&gt;
    FileInputStream inFile = new FileInputStream(args[0]);&lt;br /&gt;
    FileOutputStream outFile = new FileOutputStream(args[1]);&lt;br /&gt;
    FileChannel inChannel = inFile.getChannel();&lt;br /&gt;
    FileChannel outChannel = outFile.getChannel();&lt;br /&gt;
    inChannel.transferTo(0, inChannel.size(), outChannel);&lt;br /&gt;
    inChannel.close();&lt;br /&gt;
    outChannel.close();&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Save and read text using FileChannel without encoding ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
import java.io.FileInputStream;&lt;br /&gt;
import java.io.FileOutputStream;&lt;br /&gt;
import java.nio.ByteBuffer;&lt;br /&gt;
import java.nio.channels.FileChannel;&lt;br /&gt;
import java.nio.charset.Charset;&lt;br /&gt;
public class MainClass {&lt;br /&gt;
  private static final int BSIZE = 1024;&lt;br /&gt;
  public static void main(String[] args) throws Exception {&lt;br /&gt;
    FileChannel fc = new FileOutputStream(&amp;quot;data2.txt&amp;quot;).getChannel();&lt;br /&gt;
    fc.write(ByteBuffer.wrap(&amp;quot;Some text&amp;quot;.getBytes()));&lt;br /&gt;
    fc.close();&lt;br /&gt;
    fc = new FileInputStream(&amp;quot;data2.txt&amp;quot;).getChannel();&lt;br /&gt;
    ByteBuffer buff = ByteBuffer.allocate(BSIZE);&lt;br /&gt;
    fc.read(buff);&lt;br /&gt;
    buff.flip();&lt;br /&gt;
    System.out.println(buff.asCharBuffer());&lt;br /&gt;
    // Decode using this system&amp;quot;s default Charset:&lt;br /&gt;
    buff.rewind();&lt;br /&gt;
    String encoding = System.getProperty(&amp;quot;file.encoding&amp;quot;);&lt;br /&gt;
    System.out.println(&amp;quot;Decoded using &amp;quot; + encoding + &amp;quot;: &amp;quot; + Charset.forName(encoding).decode(buff));&lt;br /&gt;
    // Or, we could encode with something that will print:&lt;br /&gt;
    fc = new FileOutputStream(&amp;quot;data2.txt&amp;quot;).getChannel();&lt;br /&gt;
    fc.write(ByteBuffer.wrap(&amp;quot;Some text&amp;quot;.getBytes(&amp;quot;UTF-16BE&amp;quot;)));&lt;br /&gt;
    fc.close();&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Save and read text using FileChannel with UTF-16BE encoding ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
import java.io.FileInputStream;&lt;br /&gt;
import java.io.FileOutputStream;&lt;br /&gt;
import java.nio.ByteBuffer;&lt;br /&gt;
import java.nio.channels.FileChannel;&lt;br /&gt;
import java.nio.charset.Charset;&lt;br /&gt;
public class MainClass {&lt;br /&gt;
  private static final int BSIZE = 1024;&lt;br /&gt;
  public static void main(String[] args) throws Exception {&lt;br /&gt;
    FileChannel fc = new FileOutputStream(&amp;quot;data2.txt&amp;quot;).getChannel();&lt;br /&gt;
    fc.write(ByteBuffer.wrap(&lt;br /&gt;
      &amp;quot;Some text&amp;quot;.getBytes(&amp;quot;UTF-16BE&amp;quot;)));&lt;br /&gt;
    fc.close();&lt;br /&gt;
    ByteBuffer buff = ByteBuffer.allocate(BSIZE);&lt;br /&gt;
    // Now try reading again:&lt;br /&gt;
    fc = new FileInputStream(&amp;quot;data2.txt&amp;quot;).getChannel();&lt;br /&gt;
    buff.clear();&lt;br /&gt;
    fc.read(buff);&lt;br /&gt;
    buff.flip();&lt;br /&gt;
    System.out.println(buff.asCharBuffer());&lt;br /&gt;
    &lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
/**/&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre class=codeResult&amp;gt;Some text&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Test overlapping locks on different file channels ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
import java.io.RandomAccessFile;&lt;br /&gt;
import java.nio.channels.FileChannel;&lt;br /&gt;
import java.nio.channels.FileLock;&lt;br /&gt;
public class MainClass {&lt;br /&gt;
  public static void main(String[] argv) throws Exception {&lt;br /&gt;
    String filename = &amp;quot;test.dat&amp;quot;;&lt;br /&gt;
    RandomAccessFile raf1 = new RandomAccessFile(filename, &amp;quot;rw&amp;quot;);&lt;br /&gt;
    FileChannel fc1 = raf1.getChannel();&lt;br /&gt;
    RandomAccessFile raf2 = new RandomAccessFile(filename, &amp;quot;rw&amp;quot;);&lt;br /&gt;
    FileChannel fc2 = raf2.getChannel();&lt;br /&gt;
    System.out.println(&amp;quot;Grabbing first lock&amp;quot;);&lt;br /&gt;
    FileLock lock1 = fc1.lock(0L, Integer.MAX_VALUE, false);&lt;br /&gt;
    System.out.println(&amp;quot;Grabbing second lock&amp;quot;);&lt;br /&gt;
    FileLock lock2 = fc2.lock(5, 10, false);&lt;br /&gt;
    System.out.println(&amp;quot;Exiting&amp;quot;);&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  The Gathering Write ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
import java.io.File;&lt;br /&gt;
import java.io.FileOutputStream;&lt;br /&gt;
import java.nio.ByteBuffer;&lt;br /&gt;
import java.nio.channels.FileChannel;&lt;br /&gt;
public class MainClass {&lt;br /&gt;
  public static void main(String[] args) {&lt;br /&gt;
    try {&lt;br /&gt;
      test();&lt;br /&gt;
    } catch (Exception e) {&lt;br /&gt;
      e.printStackTrace();&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
  private static void test() throws Exception {&lt;br /&gt;
    long[] primes = new long[] { 1, 2, 3, 5, 7 };&lt;br /&gt;
    File aFile = new File(&amp;quot;C:/test/primes.txt&amp;quot;);&lt;br /&gt;
    FileOutputStream outputFile = null;&lt;br /&gt;
    outputFile = new FileOutputStream(aFile);&lt;br /&gt;
    FileChannel file = outputFile.getChannel();&lt;br /&gt;
    ByteBuffer[] buffers = new ByteBuffer[3];&lt;br /&gt;
    buffers[0] = ByteBuffer.allocate(8);&lt;br /&gt;
    buffers[2] = ByteBuffer.allocate(8);&lt;br /&gt;
    String primeStr = null;&lt;br /&gt;
    for (long prime : primes) {&lt;br /&gt;
      primeStr = &amp;quot;prime = &amp;quot; + prime;&lt;br /&gt;
      buffers[0].putDouble((double) primeStr.length()).flip();&lt;br /&gt;
      buffers[1] = ByteBuffer.allocate(primeStr.length());&lt;br /&gt;
      buffers[1].put(primeStr.getBytes()).flip();&lt;br /&gt;
      buffers[2].putLong(prime).flip();&lt;br /&gt;
      file.write(buffers);&lt;br /&gt;
      buffers[0].clear();&lt;br /&gt;
      buffers[2].clear();&lt;br /&gt;
    }&lt;br /&gt;
    System.out.println(&amp;quot;File written is &amp;quot; + file.size() + &amp;quot;bytes.&amp;quot;);&lt;br /&gt;
    outputFile.close();&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Using a Channel to Write a String to a File ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
import java.io.File;&lt;br /&gt;
import java.io.FileNotFoundException;&lt;br /&gt;
import java.io.FileOutputStream;&lt;br /&gt;
import java.io.IOException;&lt;br /&gt;
import java.nio.ByteBuffer;&lt;br /&gt;
import java.nio.channels.FileChannel;&lt;br /&gt;
public class MainClass {&lt;br /&gt;
  public static void main(String[] args) {&lt;br /&gt;
    String phrase = new String(&amp;quot;text \n&amp;quot;);&lt;br /&gt;
    String dirname = &amp;quot;C:/test&amp;quot;; &lt;br /&gt;
    String filename = &amp;quot;charData.txt&amp;quot;; &lt;br /&gt;
    File dir = new File(dirname); &lt;br /&gt;
    File aFile = new File(dir, filename); &lt;br /&gt;
    FileOutputStream outputFile = null; &lt;br /&gt;
    try {&lt;br /&gt;
      outputFile = new FileOutputStream(aFile, true);&lt;br /&gt;
      System.out.println(&amp;quot;File stream created successfully.&amp;quot;);&lt;br /&gt;
    } catch (FileNotFoundException e) {&lt;br /&gt;
      e.printStackTrace(System.err);&lt;br /&gt;
    }&lt;br /&gt;
    FileChannel outChannel = outputFile.getChannel();&lt;br /&gt;
    ByteBuffer buf = ByteBuffer.allocate(1024);&lt;br /&gt;
    System.out.println(&amp;quot;New buffer:           position = &amp;quot; + buf.position() + &amp;quot;\tLimit = &amp;quot;&lt;br /&gt;
        + buf.limit() + &amp;quot;\tcapacity = &amp;quot; + buf.capacity());&lt;br /&gt;
    for (char ch : phrase.toCharArray()) {&lt;br /&gt;
      buf.putChar(ch);&lt;br /&gt;
    }&lt;br /&gt;
    System.out.println(&amp;quot;Buffer after loading: position = &amp;quot; + buf.position() + &amp;quot;\tLimit = &amp;quot;&lt;br /&gt;
        + buf.limit() + &amp;quot;\tcapacity = &amp;quot; + buf.capacity());&lt;br /&gt;
    buf.flip(); &lt;br /&gt;
    System.out.println(&amp;quot;Buffer after flip:   position = &amp;quot; + buf.position() + &amp;quot;\tLimit = &amp;quot;&lt;br /&gt;
        + buf.limit() + &amp;quot;\tcapacity = &amp;quot; + buf.capacity());&lt;br /&gt;
    try {&lt;br /&gt;
      outChannel.write(buf);&lt;br /&gt;
      outputFile.close(); &lt;br /&gt;
      System.out.println(&amp;quot;Buffer contents written to file.&amp;quot;);&lt;br /&gt;
    } catch (IOException e) {&lt;br /&gt;
      e.printStackTrace(System.err);&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Using FileChannel to random access to a File ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
import java.io.File;&lt;br /&gt;
import java.io.FileInputStream;&lt;br /&gt;
import java.io.FileOutputStream;&lt;br /&gt;
import java.nio.ByteBuffer;&lt;br /&gt;
import java.nio.LongBuffer;&lt;br /&gt;
import java.nio.channels.FileChannel;&lt;br /&gt;
public class MainClass {&lt;br /&gt;
  public static void main(String[] args) throws Exception {&lt;br /&gt;
    createFile();&lt;br /&gt;
    File aFile = new File(&amp;quot;C:/primes.bin&amp;quot;);&lt;br /&gt;
    FileInputStream inFile = new FileInputStream(aFile);&lt;br /&gt;
    FileChannel inChannel = inFile.getChannel();&lt;br /&gt;
    final int PRIMESREQUIRED = 10;&lt;br /&gt;
    ByteBuffer buf = ByteBuffer.allocate(8 * PRIMESREQUIRED);&lt;br /&gt;
    long[] primes = new long[PRIMESREQUIRED];&lt;br /&gt;
    int index = 0; // Position for a prime in the file&lt;br /&gt;
    // Count of primes in the file&lt;br /&gt;
    final int PRIMECOUNT = (int) inChannel.size() / 8;&lt;br /&gt;
    // Read the number of random primes required&lt;br /&gt;
    for (int i = 0; i &amp;lt; PRIMESREQUIRED; i++) {&lt;br /&gt;
      index = 8 * (int) (PRIMECOUNT * Math.random());&lt;br /&gt;
      inChannel.read(buf, index); // Read the value&lt;br /&gt;
      buf.flip();&lt;br /&gt;
      primes[i] = buf.getLong(); // Save it in the array&lt;br /&gt;
      buf.clear();&lt;br /&gt;
    }&lt;br /&gt;
    for (long prime : primes) {&lt;br /&gt;
      System.out.printf(&amp;quot;%12d&amp;quot;, prime);&lt;br /&gt;
    }&lt;br /&gt;
    inFile.close(); // Close the file and the channel&lt;br /&gt;
  }&lt;br /&gt;
  private static void createFile() throws Exception {&lt;br /&gt;
    long[] primes = new long[] { 1, 2, 3, 5, 7 };&lt;br /&gt;
    File aFile = new File(&amp;quot;C:/primes.bin&amp;quot;);&lt;br /&gt;
    FileOutputStream outputFile = new FileOutputStream(aFile);&lt;br /&gt;
    FileChannel file = outputFile.getChannel();&lt;br /&gt;
    final int BUFFERSIZE = 100;&lt;br /&gt;
    ByteBuffer buf = ByteBuffer.allocate(BUFFERSIZE);&lt;br /&gt;
    LongBuffer longBuf = buf.asLongBuffer();&lt;br /&gt;
    int primesWritten = 0;&lt;br /&gt;
    while (primesWritten &amp;lt; primes.length) {&lt;br /&gt;
      longBuf.put(primes, primesWritten, min(longBuf.capacity(), primes.length - primesWritten));&lt;br /&gt;
      buf.limit(8 * longBuf.position());&lt;br /&gt;
      file.write(buf);&lt;br /&gt;
      primesWritten += longBuf.position();&lt;br /&gt;
      longBuf.clear();&lt;br /&gt;
      buf.clear();&lt;br /&gt;
    }&lt;br /&gt;
    System.out.println(&amp;quot;File written is &amp;quot; + file.size() + &amp;quot;bytes.&amp;quot;);&lt;br /&gt;
    outputFile.close();&lt;br /&gt;
  }&lt;br /&gt;
  private static int min(int a, int b) {&lt;br /&gt;
    if (a &amp;gt; b) {&lt;br /&gt;
      return b;&lt;br /&gt;
    } else {&lt;br /&gt;
      return a;&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre class=codeResult&amp;gt;File written is 40bytes.&lt;br /&gt;
           3           5           1           7           7           5           7           1           7           1&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Using FileChannel to read text file ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
import java.io.File;&lt;br /&gt;
import java.io.FileInputStream;&lt;br /&gt;
import java.nio.ByteBuffer;&lt;br /&gt;
import java.nio.channels.FileChannel;&lt;br /&gt;
public class MainClass {&lt;br /&gt;
  public static void main(String[] args) throws Exception {&lt;br /&gt;
    File aFile = new File(&amp;quot;charData.xml&amp;quot;);&lt;br /&gt;
    FileInputStream inFile = null;&lt;br /&gt;
    inFile = new FileInputStream(aFile);&lt;br /&gt;
    FileChannel inChannel = inFile.getChannel();&lt;br /&gt;
    ByteBuffer buf = ByteBuffer.allocate(48);&lt;br /&gt;
    while (inChannel.read(buf) != -1) {&lt;br /&gt;
      System.out.println(&amp;quot;String read: &amp;quot; + ((ByteBuffer) (buf.flip())).asCharBuffer().get(0));&lt;br /&gt;
      buf.clear();&lt;br /&gt;
    }&lt;br /&gt;
    inFile.close();&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Using transferTo() between channels ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
import java.io.FileInputStream;&lt;br /&gt;
import java.io.FileOutputStream;&lt;br /&gt;
import java.nio.channels.FileChannel;&lt;br /&gt;
public class MainClass {&lt;br /&gt;
  public static void main(String[] args) throws Exception {&lt;br /&gt;
    FileChannel in = new FileInputStream(&amp;quot;source.txt&amp;quot;).getChannel(), out = new FileOutputStream(&lt;br /&gt;
        &amp;quot;target.txt&amp;quot;).getChannel();&lt;br /&gt;
    in.transferTo(0, in.size(), out);&lt;br /&gt;
    // Or:&lt;br /&gt;
    // out.transferFrom(in, 0, in.size());&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Writing and Appending a ByteBuffer to a File ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
import java.io.File;&lt;br /&gt;
import java.io.FileOutputStream;&lt;br /&gt;
import java.nio.ByteBuffer;&lt;br /&gt;
import java.nio.channels.FileChannel;&lt;br /&gt;
public class Main {&lt;br /&gt;
  public static void main(String[] argv) throws Exception {&lt;br /&gt;
    ByteBuffer bbuf = ByteBuffer.allocate(100);&lt;br /&gt;
    File file = new File(&amp;quot;filename&amp;quot;);&lt;br /&gt;
    boolean append = false;&lt;br /&gt;
    FileChannel wChannel = new FileOutputStream(file, append).getChannel();&lt;br /&gt;
    wChannel.write(bbuf);&lt;br /&gt;
    wChannel.close();&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Writing a String as Bytes ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
import java.io.File;&lt;br /&gt;
import java.io.FileNotFoundException;&lt;br /&gt;
import java.io.FileOutputStream;&lt;br /&gt;
import java.io.IOException;&lt;br /&gt;
import java.nio.ByteBuffer;&lt;br /&gt;
import java.nio.channels.FileChannel;&lt;br /&gt;
public class MainClass {&lt;br /&gt;
  public static void main(String[] args) {&lt;br /&gt;
    String phrase = new String(&amp;quot;text\n&amp;quot;);&lt;br /&gt;
    String dirname = &amp;quot;C:/test&amp;quot;; // Directory name&lt;br /&gt;
    String filename = &amp;quot;byteData.txt&amp;quot;;&lt;br /&gt;
    File aFile = new File(dirname, filename);&lt;br /&gt;
    // Create the file output stream&lt;br /&gt;
    FileOutputStream file = null;&lt;br /&gt;
    try {&lt;br /&gt;
      file = new FileOutputStream(aFile, true);&lt;br /&gt;
    } catch (FileNotFoundException e) {&lt;br /&gt;
      e.printStackTrace(System.err);&lt;br /&gt;
    }&lt;br /&gt;
    FileChannel outChannel = file.getChannel();&lt;br /&gt;
    ByteBuffer buf = ByteBuffer.allocate(phrase.length());&lt;br /&gt;
    byte[] bytes = phrase.getBytes();&lt;br /&gt;
    buf.put(bytes);&lt;br /&gt;
    buf.flip();&lt;br /&gt;
    try {&lt;br /&gt;
      outChannel.write(buf);&lt;br /&gt;
      file.close();&lt;br /&gt;
    } catch (IOException e) {&lt;br /&gt;
      e.printStackTrace(System.err);&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Writing Mixed Data to a File ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
import java.io.File;&lt;br /&gt;
import java.io.FileNotFoundException;&lt;br /&gt;
import java.io.FileOutputStream;&lt;br /&gt;
import java.io.IOException;&lt;br /&gt;
import java.nio.ByteBuffer;&lt;br /&gt;
import java.nio.CharBuffer;&lt;br /&gt;
import java.nio.DoubleBuffer;&lt;br /&gt;
import java.nio.LongBuffer;&lt;br /&gt;
import java.nio.channels.FileChannel;&lt;br /&gt;
public class MainClass {&lt;br /&gt;
  public static void main(String[] args) {&lt;br /&gt;
    long[] primes = new long[] { 1, 2, 3, 5, 7 };&lt;br /&gt;
    File aFile = new File(&amp;quot;C:/test/primes.txt&amp;quot;);&lt;br /&gt;
    FileOutputStream outputFile = null;&lt;br /&gt;
    try {&lt;br /&gt;
      outputFile = new FileOutputStream(aFile);&lt;br /&gt;
    } catch (FileNotFoundException e) {&lt;br /&gt;
      e.printStackTrace(System.err);&lt;br /&gt;
    }&lt;br /&gt;
    FileChannel file = outputFile.getChannel();&lt;br /&gt;
    final int BUFFERSIZE = 100;&lt;br /&gt;
    ByteBuffer buf = ByteBuffer.allocate(BUFFERSIZE);&lt;br /&gt;
    DoubleBuffer doubleBuf = buf.asDoubleBuffer();&lt;br /&gt;
    buf.position(8);&lt;br /&gt;
    CharBuffer charBuf = buf.asCharBuffer();&lt;br /&gt;
    for (long prime : primes) {&lt;br /&gt;
      String primeStr = &amp;quot;prime = &amp;quot; + prime;&lt;br /&gt;
      doubleBuf.put(0, (double) primeStr.length());&lt;br /&gt;
      charBuf.put(primeStr);&lt;br /&gt;
      buf.position(2 * charBuf.position() + 8);&lt;br /&gt;
      LongBuffer longBuf = buf.asLongBuffer();&lt;br /&gt;
      longBuf.put(prime);&lt;br /&gt;
      buf.position(buf.position() + 8);&lt;br /&gt;
      buf.flip();&lt;br /&gt;
      try {&lt;br /&gt;
        file.write(buf);&lt;br /&gt;
      } catch (IOException e) {&lt;br /&gt;
        e.printStackTrace(System.err);&lt;br /&gt;
      }&lt;br /&gt;
      buf.clear();&lt;br /&gt;
      doubleBuf.clear();&lt;br /&gt;
      charBuf.clear();&lt;br /&gt;
    }&lt;br /&gt;
    try {&lt;br /&gt;
      System.out.println(&amp;quot;File written is &amp;quot; + file.size() + &amp;quot;bytes.&amp;quot;);&lt;br /&gt;
      outputFile.close();&lt;br /&gt;
    } catch (IOException e) {&lt;br /&gt;
      e.printStackTrace(System.err);&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Writing Numerical Data to a File ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
import static java.lang.Math.min;&lt;br /&gt;
import java.io.File;&lt;br /&gt;
import java.io.FileNotFoundException;&lt;br /&gt;
import java.io.FileOutputStream;&lt;br /&gt;
import java.io.IOException;&lt;br /&gt;
import java.nio.ByteBuffer;&lt;br /&gt;
import java.nio.LongBuffer;&lt;br /&gt;
import java.nio.channels.FileChannel;&lt;br /&gt;
public class MainClass {&lt;br /&gt;
  public static void main(String[] args) {&lt;br /&gt;
    long[] primes = new long[] { 1, 2, 3, 5, 7 };&lt;br /&gt;
    File aFile = new File(&amp;quot;C:/test/primes.bin&amp;quot;);&lt;br /&gt;
    FileOutputStream outputFile = null;&lt;br /&gt;
    try {&lt;br /&gt;
      outputFile = new FileOutputStream(aFile);&lt;br /&gt;
    } catch (FileNotFoundException e) {&lt;br /&gt;
      e.printStackTrace(System.err);&lt;br /&gt;
    }&lt;br /&gt;
    FileChannel file = outputFile.getChannel();&lt;br /&gt;
    final int BUFFERSIZE = 100;&lt;br /&gt;
    ByteBuffer buf = ByteBuffer.allocate(BUFFERSIZE);&lt;br /&gt;
    LongBuffer longBuf = buf.asLongBuffer();&lt;br /&gt;
    int primesWritten = 0;&lt;br /&gt;
    while (primesWritten &amp;lt; primes.length) {&lt;br /&gt;
      longBuf.put(primes, primesWritten, min(longBuf.capacity(), primes.length - primesWritten));&lt;br /&gt;
      buf.limit(8 * longBuf.position());&lt;br /&gt;
      try {&lt;br /&gt;
        file.write(buf);&lt;br /&gt;
        primesWritten += longBuf.position();&lt;br /&gt;
      } catch (IOException e) {&lt;br /&gt;
        e.printStackTrace(System.err);&lt;br /&gt;
      }&lt;br /&gt;
      longBuf.clear();&lt;br /&gt;
      buf.clear();&lt;br /&gt;
    }&lt;br /&gt;
    try {&lt;br /&gt;
      System.out.println(&amp;quot;File written is &amp;quot; + file.size() + &amp;quot;bytes.&amp;quot;);&lt;br /&gt;
      outputFile.close();&lt;br /&gt;
    } catch (IOException e) {&lt;br /&gt;
      e.printStackTrace(System.err);&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Writing Varying Length Strings to a File ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
import java.io.File;&lt;br /&gt;
import java.io.FileNotFoundException;&lt;br /&gt;
import java.io.FileOutputStream;&lt;br /&gt;
import java.io.IOException;&lt;br /&gt;
import java.nio.ByteBuffer;&lt;br /&gt;
import java.nio.channels.FileChannel;&lt;br /&gt;
public class MainClass {&lt;br /&gt;
  public static void main(String[] args) {&lt;br /&gt;
    String dirName = &amp;quot;c:/test&amp;quot;;&lt;br /&gt;
    String fileName = &amp;quot;test.txt&amp;quot;;&lt;br /&gt;
    String[] sayings = { &amp;quot;A1&amp;quot;, &amp;quot;B12&amp;quot;, &amp;quot;C123&amp;quot;, &amp;quot;D1234&amp;quot;, &amp;quot;E12345&amp;quot;, &amp;quot;F123456&amp;quot;, &amp;quot;G1234567&amp;quot; };&lt;br /&gt;
    File aFile = new File(dirName, fileName);&lt;br /&gt;
    FileOutputStream outputFile = null;&lt;br /&gt;
    try {&lt;br /&gt;
      outputFile = new FileOutputStream(aFile, true);&lt;br /&gt;
    } catch (FileNotFoundException e) {&lt;br /&gt;
      e.printStackTrace(System.err);&lt;br /&gt;
      System.exit(1);&lt;br /&gt;
    }&lt;br /&gt;
    FileChannel outChannel = outputFile.getChannel();&lt;br /&gt;
    int maxLength = 0;&lt;br /&gt;
    for (String saying : sayings) {&lt;br /&gt;
      if (maxLength &amp;lt; saying.length()){&lt;br /&gt;
        maxLength = saying.length();&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
    ByteBuffer buf = ByteBuffer.allocate(2 * maxLength + 4);&lt;br /&gt;
    try {&lt;br /&gt;
      for (String saying : sayings) {&lt;br /&gt;
        buf.putInt(saying.length()).asCharBuffer().put(saying);&lt;br /&gt;
        buf.position(buf.position() + 2 * saying.length()).flip();&lt;br /&gt;
        outChannel.write(buf);&lt;br /&gt;
        buf.clear();&lt;br /&gt;
      }&lt;br /&gt;
      outputFile.close();&lt;br /&gt;
    } catch (IOException e) {&lt;br /&gt;
      e.printStackTrace(System.err);&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;/div&gt;</summary>
			</entry>

	</feed>