grib/src/main/java/ucar/nc2/grib/grib2/table/KmaLocalTables.java
private void initLocalTable() {
    String tablePath = config.getPath();
    ClassLoader cl = KmaLocalTables.class.getClassLoader();
    try (InputStream is = cl.getResourceAsStream(tablePath)) {
    if (is == null) throw new IllegalStateException("Cant find "+tablePath);

    List<TableParser.Record> recs = TableParser.readTable(is, "41,112,124i,136i,148i,160", 1000);
    for (TableParser.Record record : recs) {
      String name = (String) record.get(0);
      int disc = (Integer) record.get(2);
      int cat = (Integer) record.get(3);
      int param = (Integer) record.get(4);
      String unit = (String) record.get(5);

      Grib2Parameter s = new Grib2Parameter(disc,cat,param,name,unit,null,null);
      local.put(makeParamId(disc, cat, param), s);
    }

    } catch (IOException ioe) {
      throw new RuntimeException(ioe);
    }
  }
private void initLocalTable() {
    String tablePath = config.getPath();
    ClassLoader cl = KmaLocalTables.class.getClassLoader();
    try (InputStream is = cl.getResourceAsStream(tablePath)) {
    if (is == null) throw new IllegalStateException("Cant find "+tablePath);

    List<TableParser.Record> recs = TableParser.readTable(is, "41,112,124i,136i,148i,160", 1000);
    for (TableParser.Record record : recs) {
      String name = (String) record.get(0);
      int disc = (Integer) record.get(2);
      int cat = (Integer) record.get(3);
      int param = (Integer) record.get(4);
      String unit = (String) record.get(5);

      Grib2Parameter s = new Grib2Parameter(disc,cat,param,name,unit,null,null);
      local.put(makeParamId(disc, cat, param), s);
    }

    } catch (IOException ioe) {
      throw new RuntimeException(ioe);
    }
  }
see http://www.nco.ncep.noaa.gov/pmb/docs/grib2/grib2_doc.shtml