/** * Reads the next line from the buffer and converts to a string array. * * @return a string array with each comma-separated element as a separate entry. * @throws IOException if bad things happen during the read */ @Nullable public List<String> readNext() throws IOException { List<String> ret = null; do { final String sNextLine = _getNextLine(); if (!m_bHasNext) { // should throw if still pending? return ret; } final List<String> r = m_aParser.parseLineMulti(sNextLine); if (ret == null) ret = r; else ret.addAll(r); } while (m_aParser.isPending()); return ret; }