2014-09-12 89 views
0

我試圖讀取一些帶空格的整數值的CSV文件。我無法得到沒有空格的整數值的文件。使用bean io,當我試圖讀取這個文件時,它在讀取整數值時給出了一個轉換錯誤。這裏是我的豆JAVA Bean IO讀取CSV文件,數值爲空格

public class PetOwner { 
    private String name; 
    private int age; 
    private int numberOfPets; 
    public String getName() { 
     return name; 
    } 
    public void setName(String name) { 
     this.name = name; 
    } 
    public int getAge() { 
     return age; 
    } 
    public void setAge(int age) { 
     this.age = age; 
    } 
    public int getNumberOfPets() { 
     return numberOfPets; 
    } 
    public void setNumberOfPets(int numberOfPets) { 
     this.numberOfPets = numberOfPets; 
    } 

}

這裏是我的映射文件

<?xml version="1.0" encoding="UTF-8" standalone="yes"?> 
<beanio xmlns="http://www.beanio.org/2012/03"> 
    <stream name="petowner" format="csv"> 
    <parser> 
     <property name="delimiter" value="," /> 
     <property name="whitespaceAllowed" value="true" /> 
    </parser> 
     <record name="petowner" class="com.PetOwner "> 
      <field name="name" type="String" />  
      <field name="age" type="int" /> 
      <field name="numberOfPets" type="int"/> 
     </record> 
    </stream> 
</beanio> 

這裏是我嘗試之前整數值讀取。提示空間我的文件內容。有一些設計限制,我不能將age和numberOfPets的數據類型更改爲String。

John, 22, 1 
Ashley, 20, 3 
+1

你可能會寫一個[自定義類型處理器(http://beanio.org/2.0/docs/reference/index.html#CustomTypeHandlers),其解析值。這應該不難。 – 2014-09-12 21:41:47

+0

謝謝我試過,但我陷入這個錯誤。字段屬性類型「int」與名爲「intValueHandler」的分配類型處理程序不兼容 – ATHER 2014-09-12 23:46:33

回答

0

您可以在映射的字段聲明中使用trim="true"。然後這些值在修剪後被驗證。

<?xml version="1.0" encoding="UTF-8" standalone="yes"?> 
    <beanio xmlns="http://www.beanio.org/2012/03"> 
<stream name="petowner" format="csv"> 
    <parser> 
     <property name="delimiter" value="," /> 
     <property name="whitespaceAllowed" value="true" /> 
    </parser> 
    <record name="petowner" class="com.PetOwner "> 
     <field name="name" type="String" />  
     <field name="age" type="int" trim="true" /> 
     <field name="numberOfPets" type="int" trim="true" /> 
    </record> 
</stream>