使用GEOTools读取dbf文件
前面讲到使用SimplefeatureStore.addFeatures()这个方法来把数据装入空SHP文件内,那么反过来,要怎么读取SHP文件内的属性数据呢?这主要用到DbaseFileReader这一个类。通过这个类可以读取所有字段每一行的数据,然后赋值到一个数组内进行输出。
public static void DbaseFileReader()
//第三个参数是使用一个charset类型的实例,使用的参数是编码类型
DbaseFileHeader header = reader.getHeader();
//返回字段的数量
int numFields = header.getNumFields();
System.out.println(numFields);
//迭代读取记录
while (reader.hasNext())
{
try {
Object[] entry =
reader.readEntry();
for (int i=0; i
{
String title = header.getFieldName(i);
Object value = entry[i];
System.out.print(title+”=”+value+”\t”);
}
System.out.println();
}
catch
(Exception e)
{
e.printStackTrace();
}
}
e.printStackTrace();
finally
if (reader != null)
{
//关闭
try
{reader.close();}
catch
(Exception e) {}
}
具体的代码如下:
public static void DbaseFileReader()
{
DbaseFileReader reader = null;
try {
//第三个参数是使用一个charset类型的实例,使用的参数是编码类型
reader = new
DbaseFileReader(new ShpFiles(path), false,
Charset.forName(“GBK”));
DbaseFileReader(new ShpFiles(path), false,
Charset.forName(“GBK”));
DbaseFileHeader header = reader.getHeader();
//返回字段的数量
int numFields = header.getNumFields();
System.out.println(numFields);
//迭代读取记录
while (reader.hasNext())
{
try {
Object[] entry =
reader.readEntry();
for (int i=0; i
{
String title = header.getFieldName(i);
Object value = entry[i];
System.out.print(title+”=”+value+”\t”);
}
System.out.println();
}
catch
(Exception e)
{
e.printStackTrace();
}
}
}
catch (Exception
e)
e)
{
e.printStackTrace();
}
finally
{
if (reader != null)
{
//关闭
try
{reader.close();}
catch
(Exception e) {}
}
}
}
转载自:https://blog.csdn.net/SCNU_Arain/article/details/84879715