If you have ever worked on a real life production application you might have noticed that 70 to 80% of the time, applications are busy doing IO or Input Output. IO in the sense: Reading, writing from and to Databases, Files, Disks, calling some APIs etcetera. Why so? Because Data needs to be persisted somewhere to be used in Future. While an application runs it loads the data in RAM but you know that It’s not permanent. So, To make the application perform better, You need to understand three things? 1. Computing should be done efficiently to save the CPU2. Space or RAM should be used effectively and efficiently because that is limited and expensiveAnd Third and most important thing is 3. IO should be done in an efficient way. Why am I calling 3rd one most important? Because if you believe my several years of experience in building large scale production ready applications, Most of the applications spend 70% time doing IO. So In this course what we gonna learn? We are going to learn Effective Java IO, NIO and NIO2And what is java way of handling IO? Let me quickly brief the agenda of the course to you. In first few sections of the course. we will learn.I/O Basics and classic IO IO was introduced in 1996 (Java 1).Which is the classic version. IO was pretty popular then, and then modern systems started getting more performant. And then The next IO upgrade came with java version 4 (2002), which is called NIO. To add support for non-blocking IO for modern operating systems. And then in 2011, we got new functionalities in Java NIO. Don’t worry if you are not familiar with NIO or with the non-blocking stuff, Or even not familiar to IO. we will discuss everything in this course. We will start with the classic io, Here We will talk about file handling, the basic patterns to read and write raw bytes, which is done using InputStream-Output Stream, we will talk about how we read characters while using classic IO, we have Reader and writers for that. And we will talk about few more important things from Classic IO, We will learn to read and write structured data, in quite similar fashion to how we do reads and writes in database, for this we will discuss Data streams. We are going to cover Random access File for that. Then how to read write a mix of different kinds of data, for example a mix of bytes and characters. After that we will discuss a very important concept, called serialization-Deserialization, to store state of a java object. And right after that, we gonna discuss some utility kind of stuff that supports Java IO. Whenever I say classic IO, I mean the stuff under io package but when I say Java IO, It includes everything that supports Input-output, whether it is ClassicIO, NIO or NIO2. So, here will see some utility stuff. Like how we can improve performance of our code, even if we are not using NIO, for that we will discuss compression techniques. Compression techniques are not io package specific, they are added under the util package in java 7. we can use compression wherever it’s needed. So, we will use compressions to enhance the performance while working with IO. We will also discuss few classes which support io and are used in day to day programming. So, that’s what we gonna cover under classic IO. Next comes NIO. We are not going to start with understanding what NIO is, rather we will first discuss The path utility provided by NIO. It’s a utility interface and is used almost everywhere, It’s kind of replacement to file utility in today’s java. The reason to discuss it earlier is that, before actually starting NIO, we will be familiar with the very basic pattern of Java IO to access the files and to smoothly work with them. Then we will jump to NIO, Here we will understand what Non-blocking IO is andThen we will be all set to understand the APIs under nio. Will see how they work. And then the enhancements and the new stuff that came with nio2. And all this will come with hands-on Coding. I strongly recommend to program along with me if you want to understand the things better. We are going to write a lot of programs! Still in doubt? Don’t worry the course comes with a 30 days money back guarantee! So if you are not happy you may return the course. If you want to become a Great Java programmer. this is a must learn stuff for you and I strongly believe after completing the course you will be able to write efficient programs in terms of IO. Welcome you again to the Journey see you in the course.