Reader r = new BufferedReader(new FileReader("data/hexes/" + filename));
Reader r = new BufferedReader(new FileReader("data/images/hexes/" + filename));
    public void loadFromFile(String filename) throws IOException {        // make inpustream for board        Reader r = new BufferedReader(new FileReader("data/hexes/" + filename)); //$NON-NLS-1$        // read board, looking for "size"        StreamTokenizer st = new StreamTokenizer(r);        st.eolIsSignificant(true);        st.commentChar('#');        st.quoteChar('"');        st.wordChars('_', '_');        while(st.nextToken() != StreamTokenizer.TT_EOF) {            int elevation = 0;            String terrain = null;            String theme = null;            String imageName = null;            if(st.ttype == StreamTokenizer.TT_WORD && (st.sval.equals("base") || st.sval.equals("super"))) { //$NON-NLS-1$ //$NON-NLS-2$                boolean base = st.sval.equals("base"); //$NON-NLS-1$                if (st.nextToken() == StreamTokenizer.TT_NUMBER) {                    elevation = (int)st.nval;                } else {                    elevation = ITerrain.WILDCARD;                }                st.nextToken();                terrain = st.sval;                st.nextToken();                theme = st.sval;                st.nextToken();                imageName = st.sval;                // add to list                if (base) {                    bases.add(new HexEntry(new Hex(elevation, terrain, theme), imageName));                } else {                    supers.add(new HexEntry(new Hex(elevation, terrain, theme), imageName));                }            }        }        r.close();                System.out.println("hexTileset: loaded " + bases.size() + " base images"); //$NON-NLS-1$ //$NON-NLS-2$        System.out.println("hexTileset: loaded " + supers.size() + " super images"); //$NON-NLS-1$ //$NON-NLS-2$    }