Java NIO (New IO) was introduced in JDK 1.4. While Java IO centralizes around Stream/Reader/Writer and uses decorator pattern as its main design, where you have decorate one InputStream type with each other in the right order. The NIO uses Channel/Buffer/Selector.
Read a file using IO
File file =new File("C:\\test\\test.txt");
FileInputStream fis = new FileInputStream(file);
//decorate BufferedReader with InputStreamReader
BufferedReader d = new BufferedReader(new InputStreamReader(fis));
String line=null;
while((line = d.readLine()) != null){
System.out.println(line);
}
Read a file using NIO
RandomAccessFile rFile = new RandomAccessFile("C:\\test\\test.txt", "rw");
//get Channel
FileChannel inChannel = rFile.getChannel();
//Intialize byte buffer
ByteBuffer buf = ByteBuffer.allocate(100);
//read data to buffer
while(inChannel.read(buf)>0){
buf.flip(); //flip into read mode
while(buf.hasRemaining()){
System.out.print((char)buf.get());
}
buf.clear();
}
rFile.close();