public virtual void eachLine(Func f) { try { string line; while ((line = readLine()) != null) f.call(line); } finally { try { close(); } catch (System.Exception e) { Err.dumpStack(e); } } }