public void loadFromFile(File file, String separator, boolean skipFirst) {
		try {
			BufferedReader in = new BufferedReader(new FileReader(file));
			String line;
			int irow = -1;
			Pattern pattern = Pattern.compile(separator, Pattern.LITERAL);
			while ((line = in.readLine()) != null) {
				++irow;
				if (irow == 0 && skipFirst)
					continue;
				if (StringUtils.trimToNull(line) == null)
					continue;
				String[] tokens = pattern.split(line, -1);
				int icol = -1;
				Row row = new Row();
				for (String token : tokens) {
					++icol;
					if (icol + 1 > this.colNames.size())
						break;
					row.data.add(this.objectBuilders.get(icol).build(token));
				}
				row.names = this.colNames;
				this.rows.add(row);
			}
			in.close();
		} catch (FileNotFoundException e) {
			throw new RuntimeException(e);
		} catch (IOException e) {
			throw new RuntimeException(e);
		}
	}