public static List<String> readLines(Reader input) throws IOException {
        BufferedReader reader = toBufferedReader(input);
        List<String> list = new ArrayList<String>();
        String line = reader.readLine();
        while (line != null) {
            list.add(line);
            line = reader.readLine();
        }
        return list;
    }
Get the contents of a <code>Reader</code> as a list of Strings,
one entry per line.
<p>
This method buffers the input internally, so there is no need to use a
<code>BufferedReader</code>.

@param input the <code>Reader</code> to read from, not null
@return the list of Strings, never null
@throws NullPointerException if the input is null
@throws IOException          if an I/O error occurs
@since 1.1
pay-java-common/src/main/java/com/egzosn/pay/common/util/IOUtils.java