Я попытался воссоздать проблему и обнаружил то же самое.
Учитывая, что есть лицензия на эту библиотеку (см. здесь ), я бы предположил, что это может быть способ разработчиковубедитесь, что лицензия куплена как обычная загрузка, содержит только демонстрационную версию для ознакомления (см. лицензирование перед загрузкой ).
Поскольку эта библиотека довольно старая (авторские права на сайт принадлежат 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 (которая делает не опубликованной на maven как 1.3-SNAPSHOTк сожалению) делает после того, как write- и printformat были введены.
Вы можете клонировать или загрузить библиотеку и запустить mvn clean package
(при условии, что у вас установлен maven) и использовать сгенерированную библиотеку (находится в target\spss-reader-1.3-SNAPSHOT.jar
) в вашем проекте, чтобы иметь методы SpssVariable#getPrintFormat
и SpssVariable#getWriteFormat
имеется в наличии.
Те возвращают SpssVariableFormat
, от которого вы можете получить больше информации.Поскольку я понятия не имею, о чем все это, лучшее, что я могу сделать, это связать вас с источником здесь , где ссылки на материал, который был реализован там, должны помочь вам в дальнейшем (я предполагаю, что эта ссылка , на которую ссылается документация SpssVariableFormat#getType
, вероятно, наиболее полезна для определения того, какой у вас там формат.
Если с этим абсолютно НИЧЕГО не работает, я думаю, вы могли бы использовать демонстрационную версиюбиблиотеки в вопросе, чтобы определить материал через it.next().getClass().getSimpleName()
, но я бы прибегнул к этому, только если нет другого способа определить формат.