JAVA之读取SPSS(.sav)文件问题分享
起因
最近在看SPSS数据库怎么通过Java程序读取相关内容,然后发现大家都是通过使用一个叫做spss-reader的工具包,Maven的依赖如下:
<dependency>
<groupId>com.bedatadriven.spss</groupId>
<artifactId>spss-reader</artifactId>
<version>1.3</version>
</dependency>
分析
然后我在使用的过程中发现读取Case的中文结果的时候发现总是读取不全间隔出现问号乱码。
通过分析代码发现,在处理像UTF-8中文三字节的情况下逻辑存在问题,我个人做了一些修改,目前测试问题不大。
使用
Github相关地址 https://github.com/meetzy/spss-reader
新的仓库上Clone代码 自行打包
public static void main(String[] args) throws IOException {
SpssDataFileReader reader = new SpssDataFileReader("xxx.sav");
while (reader.readNextCase()) {
for (SpssVariable variable : reader.getVariables()) {
if (variable.isNumeric()) {
System.out.print(reader.getDoubleValue(variable.getIndex()));
} else if (variable.isVeryLongString()) {
System.out.print(reader.getVeryLongStringValue(variable.getIndex()));
} else {
System.out.print(reader.getStringValue(variable.getIndex()));
}
}
System.out.println();
}
}
请教
由于并不实质性了解Spss 只是由问题本身发现并做了更改,如果有不妥之处,还请有关方面相关朋友、专家提供指导与帮助。