code: public static int eachLine(Reader r, Each<String> callback) {
          if (null == callback || null == r)
              return 0;
          BufferedReader br = null;
          try {
              br = Streams.buffr(r);
              String line;
              int index = 0;
              while (null != (line = br.readLine())) {
                  try {
                      callback.invoke(index++, line, -1);
                  }
                  catch (ExitLoop e) {
                      break;
                  }
                  catch (ContinueLoop e) {
                      continue;
                  }
              }
              return index;
          }
          catch (IOException e2) {
              throw Lang.wrapThrow(e2);
          }
          finally {
              Streams.safeClose(br);
          }
      }
docs: 对一个文本输入流迭代每一行，并将其关闭
  
  @param r
  文本输入流
  @param callback
  回调
  @return 迭代的行数