import java.io.File;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.FileReader;
import java.util.ArrayList;

public class Engineering {
	public static void main(String[] args) {
		if (args.length < 1) {
			System.err.println("A file must be supplied.");
			System.exit(1);
			return;
		}
		File file = new File(args[0]);
		ArrayList<Student> records;
		try {
			records = readRecords(file);
		} catch (IOException ex) {
			System.err.println("Error reading file: " + file);
			System.exit(1);
			return;
		}
	}

	private static ArrayList<Student> readRecords(File file)
	        throws IOException {
		ArrayList<Student> records = new ArrayList<Student>();
		try (BufferedReader reader = new BufferedReader(new FileReader(file))) {
			for (String line = reader.readLine(); // Forget first line.
			     (line = reader.readLine()) != null;) {
				records.add(new Student(line));
			}
		}
		return records;
	}
}

@@ -528,17 +528,45 @@
 rn;%0A%09%09%7D%0A
-%09
+%0A%09%09interactiveLoop(records);%0A
 %7D%0A%0A%09priv
@@ -890,16 +890,44 @@
 ull;) %7B%0A
+%09%09%09%09if (!line.isEmpty()) %7B%0A%09
 %09%09%09%09reco
@@ -958,13 +958,19 @@
 ));%0A
+%09
 %09%09%09%7D%0A
+%09%09%09%7D%0A
 %09%09%7D%0A
@@ -987,13 +987,280 @@
 ecords;%0A
+%09%7D%0A%09%0A%09private static void interactiveLoop(ArrayList%3CStudent%3E records) %7B%0A%09%09BufferedReader stdin = new BufferedReader(new FileInputStream(%0A%09%09                       System.in));%0A%09%09for (String line; (line = stdin.readLine()) != null;) %7B%0A%09%09%09System.out.println(line);%0A%09%09%7D%0A%0A
 %09%7D%0A%7D%0A

Add interactiveLoop() shell for testing