ucar.nc2.util
Class TableParser
java.lang.Object
ucar.nc2.util.TableParser
public class TableParser
- extends java.lang.Object
Utility class to read and parse a fixed length table.
Each line of the table becomes a "Record". Each Record has a set of Fields described by the format string.
List recs = TableParser.readTable(is, "3,15,46,54,60d,67d,73d", 50000);
for (TableParser.Record record : recs) {
Station s = new Station();
s.id = "K" + record.get(0);
s.name = record.get(2) + " " + record.get(3);
s.lat = (Double) record.get(4) * .01;
s.lon = (Double) record.get(5) * .01;
s.elev = (Double) record.get(6);
stationTableHash.put(s.id, s);
if (showStations) System.out.println(" station= " + s);
}
Example Table:
TLX 000001 OKLAHOMA_CITY/Norman OK US 3532 -9727 370 0 NWS
AMA 000313 AMARILLO/Amarillo TX US 3523 -10170 1093 0 NWS
HGX 000378 HOUSTON/GALVESTON/Dickinson TX US 2947 -9507 5 0 NWS
MLB 000302 MELBOURNE/Melbourne FL US 2810 -8065 11 0 NWS
format:
"3,15,54,60d,67d,73d"
grammer:
format = {field,}
field = endPos type
endPos = ending pos in the line
type = i=integer, d=double else String
field[0] goes from 0 to endPos[0]
field[i] goes from endPos[i-1]+1 to endPos[i]
- Author:
- caron
Method Summary |
static void |
main(java.lang.String[] args)
|
static java.util.List<TableParser.Record> |
readTable(java.io.InputStream ios,
java.lang.String format,
int maxLines)
Reads an input stream, containing lines of ascii in fixed width format. |
static java.util.List<TableParser.Record> |
readTable(java.lang.String urlString,
java.lang.String format,
int maxLines)
Reads a URL or file in as a table. |
Methods inherited from class java.lang.Object |
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
TableParser
public TableParser()
readTable
public static java.util.List<TableParser.Record> readTable(java.lang.String urlString,
java.lang.String format,
int maxLines)
throws java.io.IOException,
java.lang.NumberFormatException
- Reads a URL or file in as a table.
- Parameters:
urlString
- starts with http, read URL contenets, else read file.format
- describe format of each line.maxLines
- maximum number of lines to parse, set to < 0 to read all
- Returns:
- List of TableParser.Record
- Throws:
java.io.IOException
- on read error
java.lang.NumberFormatException
- on parse number error- See Also:
readTable(InputStream ios, String format, int maxLines)
readTable
public static java.util.List<TableParser.Record> readTable(java.io.InputStream ios,
java.lang.String format,
int maxLines)
throws java.io.IOException,
java.lang.NumberFormatException
- Reads an input stream, containing lines of ascii in fixed width format.
Breaks each line into a set of Fields (space or comma delimited) which may be String, integer or double.
- Parameters:
ios
- the input streamformat
- describe format of each line.maxLines
- maximum number of lines to parse, set to < 0 to read all
- Returns:
- List of TableParser.Record
- Throws:
java.io.IOException
- on read error
java.lang.NumberFormatException
- on parse number error
main
public static void main(java.lang.String[] args)
throws java.io.IOException
- Throws:
java.io.IOException