2016-03-08 26 views
-1

現在我有兩個類,我的ImageMatrix類和我的ImageMatrixDB類,它們本質上應該將一個8×8像素的矩陣構建到一個數組中,以便以後處理。我正在使用一些數據集,我希望以後也能應用一些機器學習算法。 (請參閱data descriptionsample dataset。)現在,我一直在努力檢查數據是否被解析,我似乎遇到了關於加載.csv文件的問題。我已經在嘗試多次調用我公共靜態無效的主要(...我在想,如果有人能在正確的方向推我目前我班如下:。測試我的數據集的問題正在解析 - Java

ImageMatrix.java

public class ImageMatrix { 
    int[] data; 
    int classCode; 
    public ImageMatrix(int[] data, int classCode) { 
     assert data.length == 64; 
     this.data = data; 
     this.classCode = classCode; 
    } 

    public int[] getData() { 
     return data; 
    } 

    public int getClassCode() { 
    return classCode; 
    } 
} 
再次

ImageMatrixDB.java

import java.io.*; 
import java.util.*; 



public class ImageMatrixDB implements Iterable<ImageMatrix> { 
    private List<ImageMatrix> list = new ArrayList<>; 

    public static ImageMatrixDB load(File f) throws IOException { 
     ImageMatrixDB result = new ImageMatrixDB(); 
     try (FileReader fr = new FileReader(f); 
      BufferedReader br = new BufferedReader(fr)) { 
      for (String line; null != (line = br.readLine());) { 
       int lastComma = line.lastIndexOf(','); 
       int classCode = Integer.parseInt(line.substring(1 + lastComma)); 
       int[] data = Arrays.stream(line.substring(0, lastComma).split(",")) 
            .mapToInt(Integer::parseInt) 
            .toArray(); 
       result.list.add(new ImageMatrix(data, classCode)); 
      } 
     } 
     return result; 
    } 


    public Iterator<ImageMatrix> iterator() { 
     return this.list.iterator(); 
    } 

} 

感謝。

+1

你有什麼異常嗎?如果是,請添加堆棧跟蹤。 – Jens

+0

你到底在問什麼? – Roman

回答

3

CSV文件實際上並不是那麼容易解析,尤其是在轉義和多行條目方面。這就是爲什麼我建議使用CSV庫,例如opencsv