Ваша программа требует ввода строки для каждой строки, которую вы читаете из сокета. Вы печатаете достаточно строк?
Строки, которые вы читаете из консоли, записываются в файл. Вы ожидали, что строки из сокета будут записаны в файл?
Где вы закрываете файл (и сокет)
Другой подход заключается в использовании такой утилиты, как Apache IOUtils
Socket skt = new Socket("localhost", port);
IOUtils.copy(skt.getInputStream(), new FileOutputStream(filename));
skt.close();