Course Information
Course Overview
Learn how to write high performing non blocking IO operations in Java
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 CPU
2. Space or RAM should be used effectively and efficiently because that is limited and expensive
And 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 NIO2
And 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 and
Then 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...
Course Content
- 10 section(s)
- 111 lecture(s)
- Section 1 Introduction
- Section 2 Getting Started With IO
- Section 3 File API
- Section 4 Byte Streams
- Section 5 Character Streams
- Section 6 Data Streams For Structured Data
- Section 7 Object Streams - Serialization
- Section 8 Overriding Serialization - Externalization
- Section 9 Reading Writing With Hybrid Streams
- Section 10 More Reading-Writing Options That Support IO
What You’ll Learn
- Java IO
- JAVA NIO
- JAVA NIO2
- Java Input/Output
Skills covered in this course
Reviews
-
CCalebe Dos Santos Oliveira
Java IO has a lot of changes over the course the last years and I always had some problems wrapping my head around some concepts, even from classic IO. Things like FilesStreams, FileInputStream, besides the factory methods from Files and Paths api were a little bit cryptic for me. This course cleared a lot things up and got me into right direction on how to use these tools correctly.
-
MMichael Hamilton
This course has some strengths but falls short in several areas. While the instructor provides detailed explanations for each module and includes a helpful mind map for structure, the overall presentation lacks engagement. The audio quality is inconsistent, making it challenging to follow at times. The examples, though numerous, often feel disconnected from real-world applications, appearing to be lifted directly from documentation rather than tailored for practical understanding. The visual aids could be improved to better illustrate complex concepts. While the course structure is well-organized, the content delivery is sometimes too vague and fails to maintain interest. I recommend using outside sources to better comprehend, granted this is from my level of understanding...
-
KKaustav Ghosh
More examples can be added with course
-
AAnonymized User
These topics are explained very thoroughly and helps me do lots of work related to writing and reading files from external sources like S3 buckets in an efficient way. It would be great if you could extend or have some code to delve into handling various file formats such as json, xml, yaml files etc and working with large files efficiently too. Thank you very much