ui/src/main/java/ucar/nc2/ui/gis/shapefile/DbaseFile.java
public static void main(String[] args) {
    if (args.length < 1) {
      System.out.println("filename or URL required");
      System.exit(-1);
    }
    for (String s : args) {
      System.out.println("*** Dump of Dbase " + s + ":");
      try {
        DbaseFile dbf = new DbaseFile(s);
        // load() method reads all data at once
        if (dbf.loadHeader() != 0) {
          System.out.println("Error loading header" + s);
          System.exit(-1);
        }

        // output schema as [type0 field0, type1 field1, ...]
        String[] fieldNames = dbf.getFieldNames();
        System.out.print("[");

        int nf = dbf.getNumFields();
        DbaseData[] dbd = new DbaseData[nf];
        for (int field = 0; field < nf; field++) {
          dbd[field] = dbf.getField(field);
          switch (dbd[field].getType()) {
            case DbaseData.TYPE_BOOLEAN:
              System.out.print("boolean ");
              break;
            case DbaseData.TYPE_CHAR:
              System.out.print("String ");
              break;
            case DbaseData.TYPE_NUMERIC:
              System.out.print("double ");
              break;
          }
          System.out.print(fieldNames[field]);
          if (field < nf - 1)
            System.out.print(", ");
        }
        System.out.println("]");

        if (dbf.loadData() != 0) {
          System.out.println("Error loading data" + s);
          System.exit(-1);
        }

        // output data
        for (int rec = 0; rec < dbf.getNumRecords(); rec++) {
          for (int field = 0; field < nf; field++) {
            System.out.print(dbd[field].getData(rec));
            if (field < nf - 1)
              System.out.print(", ");
            else
              System.out.println();
          }
        }
      } catch (IOException e) {
        e.printStackTrace();
        break;
      }
    }
  }
public static void main(String[] args) {
    if (args.length < 1) {
      System.out.println("filename or URL required");
      System.exit(-1);
    }
    for (String s : args) {
      System.out.println("*** Dump of Dbase " + s + ":");
      try {
        DbaseFile dbf = new DbaseFile(s);
        // load() method reads all data at once
        if (dbf.loadHeader() != 0) {
          System.out.println("Error loading header" + s);
          System.exit(-1);
        }

        // output schema as [type0 field0, type1 field1, ...]
        String[] fieldNames = dbf.getFieldNames();
        System.out.print("[");

        int nf = dbf.getNumFields();
        DbaseData[] dbd = new DbaseData[nf];
        for (int field = 0; field < nf; field++) {
          dbd[field] = dbf.getField(field);
          switch (dbd[field].getType()) {
            case DbaseData.TYPE_BOOLEAN:
              System.out.print("boolean ");
              break;
            case DbaseData.TYPE_CHAR:
              System.out.print("String ");
              break;
            case DbaseData.TYPE_NUMERIC:
              System.out.print("double ");
              break;
          }
          System.out.print(fieldNames[field]);
          if (field < nf - 1)
            System.out.print(", ");
        }
        System.out.println("]");

        if (dbf.loadData() != 0) {
          System.out.println("Error loading data" + s);
          System.exit(-1);
        }

        // output data
        for (int rec = 0; rec < dbf.getNumRecords(); rec++) {
          for (int field = 0; field < nf; field++) {
            System.out.print(dbd[field].getData(rec));
            if (field < nf - 1)
              System.out.print(", ");
            else
              System.out.println();
          }
        }
      } catch (IOException e) {
        e.printStackTrace();
        break;
      }
    }
  }
public static void main ( String [ ] args ) { if ( args . length < 1 ) { System . out . println ( "filename or URL required" ) ; System . exit ( - 1 ) ; } for ( String s : args ) { System . out . println ( "*** Dump of Dbase " + s + ":" ) ; try { DbaseFile dbf = new DbaseFile ( s ) ; // load() method reads all data at once
 if ( dbf . loadHeader ( ) != 0 ) { System . out . println ( "Error loading header" + s ) ; System . exit ( - 1 ) ; } // output schema as [type0 field0, type1 field1, ...]
 String [ ] fieldNames = dbf . getFieldNames ( ) ; System . out . print ( "[" ) ; int nf = dbf . getNumFields ( ) ; DbaseData [ ] dbd = new DbaseData [ nf ] ; for ( int field = 0 ; field < nf ; field ++ ) { dbd [ field ] = dbf . getField ( field ) ; switch ( dbd [ field ] . getType ( ) ) { case DbaseData . TYPE_BOOLEAN : System . out . print ( "boolean " ) ; break ; case DbaseData . TYPE_CHAR : System . out . print ( "String " ) ; break ; case DbaseData . TYPE_NUMERIC : System . out . print ( "double " ) ; break ; } System . out . print ( fieldNames [ field ] ) ; if ( field < nf - 1 ) System . out . print ( ", " ) ; } System . out . println ( "]" ) ; if ( dbf . loadData ( ) != 0 ) { System . out . println ( "Error loading data" + s ) ; System . exit ( - 1 ) ; } // output data
 for ( int rec = 0 ; rec < dbf . getNumRecords ( ) ; rec ++ ) { for ( int field = 0 ; field < nf ; field ++ ) { System . out . print ( dbd [ field ] . getData ( rec ) ) ; if ( field < nf - 1 ) System . out . print ( ", " ) ; else System . out . println ( ) ; } } } catch ( IOException e ) { e . printStackTrace ( ) ; break ; } } }
Test program, dumps a Dbase file to stdout.
Test program dumps a Dbase file to stdout .