| 
     
    
/* 
 * Output: 
File stream created successfully. 
New buffer:           position = 0  Limit = 1024  capacity = 1024 
Buffer after loading: position = 30  Limit = 1024  capacity = 1024 
Buffer after flip:    position = 0  Limit = 30  capacity = 1024 
Buffer contents written to file. 
 */ 
 
import java.io.File; 
import java.io.FileOutputStream; 
import java.io.IOException; 
import java.io.FileNotFoundException; 
import java.nio.ByteBuffer; 
import java.nio.channels.FileChannel; 
 
public class MainClass { 
  public static void main(String[] args) { 
    String phrase = new String("www.java2s.com\n"); 
 
    File aFile = new File("test.txt");    
    FileOutputStream outputFile = null;   
    try { 
      outputFile = new FileOutputStream(aFile, true); 
      System.out.println("File stream created successfully."); 
    } catch (FileNotFoundException e) { 
      e.printStackTrace(System.err); 
    }  
 
    FileChannel outChannel = outputFile.getChannel(); 
     
    ByteBuffer buf = ByteBuffer.allocate(1024); 
    System.out.println("New buffer:           position = " + buf.position() 
                       + "\tLimit = " + buf.limit() + "\tcapacity = " 
                       + buf.capacity()); 
 
    // Load the data into the buffer 
    for (char ch : phrase.toCharArray()) { 
      buf.putChar(ch); 
    } 
    System.out.println("Buffer after loading: position = " + buf.position() 
                       + "\tLimit = " + buf.limit() + "\tcapacity = " 
                       + buf.capacity()); 
    buf.flip(); 
    System.out.println("Buffer after flip:    position = " + buf.position()  
                       + "\tLimit = " + buf.limit() + "\tcapacity = "  
                       + buf.capacity()); 
 
    try { 
      outChannel.write(buf); 
      outputFile.close(); 
      System.out.println("Buffer contents written to file."); 
    } catch (IOException e) { 
      e.printStackTrace(System.err); 
    } 
  } 
} 
 
 
            
          
     
     
   
    
    |