import static java.lang.Math.ceil; 
import static java.lang.Math.min; 
import static java.lang.Math.sqrt; 
 
import java.io.File; 
import java.io.FileNotFoundException; 
import java.io.FileOutputStream; 
import java.io.IOException; 
import java.nio.ByteBuffer; 
import java.nio.LongBuffer; 
import java.nio.channels.FileChannel; 
 
public class MainClass { 
  public static void main(String[] args) { 
    int count = 100; 
 
    long[] numbers = new long[count]; 
 
    for (int i = 0; i < numbers.length; i++) { 
      numbers[i] = i; 
 
    } 
    File aFile = new File("data.bin"); 
    FileOutputStream outputFile = null; 
    try { 
      outputFile = new FileOutputStream(aFile); 
    } catch (FileNotFoundException e) { 
      e.printStackTrace(System.err); 
      System.exit(1); 
    } 
    FileChannel file = outputFile.getChannel(); 
    final int BUFFERSIZE = 100; 
    ByteBuffer buf = ByteBuffer.allocate(BUFFERSIZE); 
    LongBuffer longBuf = buf.asLongBuffer(); 
 
    int numberWritten = 0; 
 
    while (numberWritten < numbers.length) { 
      longBuf.put(numbers, numberWritten, min(longBuf.capacity(), numbers.length - numberWritten)); 
      buf.limit(8 * longBuf.position()); 
      try { 
        file.write(buf); 
        numberWritten += longBuf.position(); 
      } catch (IOException e) { 
        e.printStackTrace(System.err); 
        System.exit(1); 
      } 
      longBuf.clear(); 
      buf.clear(); 
    } 
 
    try { 
      System.out.println("File written is " + file.size() + " bytes."); 
      outputFile.close(); 
    } catch (IOException e) { 
      e.printStackTrace(System.err); 
      System.exit(1); 
    } 
  } 
} 
 
            
          
  
  |