Everything You Need to Know About Java File IO And Serialization