java 读取shp乱码
时间: 2023-06-28 20:12:59 浏览: 135
如果在 Java 中读取 SHP 文件时出现乱码,可能是因为 SHP 文件使用了不同的编码方式,而 Java 默认使用的编码方式与 SHP 文件不匹配。为了解决这个问题,可以在读取 SHP 文件时指定正确的编码方式。
下面是一个示例代码,演示如何在 Java 中读取 SHP 文件,并指定编码方式为 UTF-8:
```java
import java.io.FileInputStream;
import java.io.IOException;
import java.nio.charset.Charset;
import org.geotools.data.shapefile.ShapefileDataStore;
import org.geotools.data.simple.SimpleFeatureCollection;
import org.geotools.data.simple.SimpleFeatureSource;
import org.opengis.feature.simple.SimpleFeature;
import org.opengis.feature.simple.SimpleFeatureType;
public class ReadSHP {
public static void main(String[] args) throws IOException {
// 读取 SHP 文件
ShapefileDataStore dataStore = new ShapefileDataStore(new FileInputStream("path/to/your/shp/file.shp"), Charset.forName("UTF-8"));
// 获取 Feature 类型信息
SimpleFeatureType featureType = dataStore.getSchema();
// 获取 Feature 数据集
SimpleFeatureSource featureSource = dataStore.getFeatureSource();
SimpleFeatureCollection featureCollection = featureSource.getFeatures();
// 遍历 Feature 数据集
try (SimpleFeatureIterator iterator = featureCollection.features()) {
while (iterator.hasNext()) {
SimpleFeature feature = iterator.next();
// TODO: 处理 Feature 数据
}
} finally {
dataStore.dispose();
}
}
}
```
在上面的代码中,我们使用了 GeoTools 库来读取 SHP 文件,并指定编码方式为 UTF-8。如果你没有使用过 GeoTools 库,可以先通过 Maven 或手动下载并导入该库。
阅读全文