@ Override
	public T readFromFile(final File file)
	{
		skipRemaining = false;
		
		Path filePath = Paths.get (file.getAbsolutePath ());
		T object = null;
		BufferedReader reader = null;
		
		try { // Read file using BufferedReader
			reader = Files.newBufferedReader (filePath, encoding);
			
			// Get instantiated object. Workaround to avoid issues with Java Generics
			object = instantiateObj ();
			
			int lineNum = 0;
			String line = null;
			
			// Read file, line by line
			while ((line = reader.readLine ()) != null && !skipRemaining) {
				lineNum++;
				processLine (object, line, lineNum);
			}
		} catch (IOException e) {
			e.printStackTrace ();
		} finally { // Close BufferedReader
			if (reader != null) {
				try {
					reader.close ();
				} catch (IOException e) {}
			}
		}
		
		return object;
	}