public VcfHeader readHeader() {
		// No more header to read?
		if ((nextLine != null) && !nextLine.startsWith("#")) return header;

		try {
			while (ready()) {
				line = readLine();
				if (line == null) return null; // End of file?
				if (!line.startsWith("#")) {
					nextLine = line;
					return header; // End of header?
				}

				header.addLine(line);
			}
		} catch (IOException e) {
			throw new RuntimeException("Error reading file '" + fileName + "'. Line ignored:\n\tLine (" + lineNum + "):\t'" + line + "'");
		}

		return header;
	}