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 只是由問題本身發現並做了更改,如果有不妥之處,還請有關方面相關朋友、專家提供指導與幫助。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM