Программа была бы неполноценной, если бы не могла обмениваться с пользователем данными.
Мы можем получать данные с клавиатуры, мыши, веб-камеры, читать из файла, из интернета. Выводить данные можем на монитор, передавать по сети, сохранять в файлы.
В Java есть множество классов, помогающих работать с вводом-выводом