我尝试重新创建问题并发现同样的事情。
考虑到该库有许可(请参阅此处),我认为这可能是开发人员确保购买许可的一种方式,因为常规下载仅包含作为评估的演示版本(请参阅下载前的许可)。
由于该库相当旧(网站的版权为 2003-2008,对库的要求是 Java 1.2,没有泛型,使用向量等),只要您不限于一个,我会推荐一个不同的库在你的问题中使用。
快速搜索后发现这里有一个开源的spss阅读器,也可以通过这里的Maven获得。
使用 github 页面上的示例,我将其放在一起:
import com.bedatadriven.spss.SpssDataFileReader;
import com.bedatadriven.spss.SpssVariable;
public class SPSSDemo {
public static void main(String[] args) {
try {
SpssDataFileReader reader = new SpssDataFileReader(args[0]);
for (SpssVariable var : reader.getVariables()) {
System.out.println(var.getVariableName());
}
} catch (Exception ex) {
ex.printStackTrace();
}
}
}
我找不到可以打印的东西NumericVariable
或类似的东西,但由于这些是您在问题中使用的库的类名,我会假设这些不是 SPSS 标准化的。如果是,您可以在库中找到类似的内容,也可以在 github 页面上打开问题。
使用此处employees.sav
的文件,我使用开源库从上面的代码中得到了这个输出:
resp_id
gender
first_name
last_name
date_of_birth
education_type
education_years
job_type
experience_years
monthly_income
job_satisfaction
没有更多的字符了!
关于评论的 编辑:
那是对的。我通读了一些 SPSS 的东西,据我了解,只有字符串和数字变量,然后以不同的方式格式化。在 maven 中发布的版本只允许您访问变量的类型代码(老实说,不知道那是什么),但 github 版本(不幸的是,它似乎没有像 1.3-SNAPSHOT 那样在 maven 上发布)在 write-和 printformat 已被引入。
您可以克隆或下载该库并运行mvn clean package
(假设您已安装 maven)并target\spss-reader-1.3-SNAPSHOT.jar
在您的项目中使用生成的库(位于 下)以获取方法SpssVariable#getPrintFormat
和SpssVariable#getWriteFormat
可用。
那些返回一个SpssVariableFormat
你可以从中获得更多信息的。因为我不知道这一切是关于什么的,所以我能做的最好的就是将您链接到此处的源代码,其中对在那里实现的东西的引用应该可以进一步帮助您(我假设文档中引用的这个链接SpssVariableFormat#getType
是可能最有助于确定您在那里拥有哪种格式。
如果绝对没有任何方法可以解决这个问题,我想您也可以使用问题中库的演示版本来确定内容it.next().getClass().getSimpleName()
,但只有在没有其他方法来确定格式的情况下,我才会诉诸于此。