使用環境
window 10Home
eclipse: 2022-03
orangesignal-csv-2.2.1
前回
https://teratail.com/questions/8ng9q7802mglso
で質問した所、同じコードを打ってみたものの、どういうわけかエラーが出てしまい
進みません。なぜ進まないのかがよくわかりません。
恐らく、CSVの保存に問題があるのではと思いますが、
果たしてどうなのでしょうか。
出てくるエラーコード
Exception in thread "main" java.lang.IllegalStateException: Invalid CsvColumn field prefature at com.orangesignal.csv.bean.CsvEntityTemplate.getPosition(CsvEntityTemplate.java:258) at com.orangesignal.csv.io.CsvEntityReader.convert(CsvEntityReader.java:298) at com.orangesignal.csv.io.CsvEntityReader.toEntity(CsvEntityReader.java:228) at com.orangesignal.csv.handlers.CsvEntityListHandler.load(CsvEntityListHandler.java:104) at com.orangesignal.csv.handlers.AbstractCsvListHandler.load(AbstractCsvListHandler.java:76) at com.orangesignal.csv.handlers.AbstractCsvListHandler.load(AbstractCsvListHandler.java:1) at com.orangesignal.csv.Csv.load(Csv.java:69) at com.orangesignal.csv.Csv.load(Csv.java:83) at com.orangesignal.csv.Csv.load(Csv.java:112) at com.orangesignal.csv.Csv.load(Csv.java:148) at com.orangesignal.csv.manager.AbstractCsvLoader.from(AbstractCsvLoader.java:132) at cse5.Main.main(Main.java:13)
Main.java
1package cse5; 2 3import java.io.File; 4import java.io.IOException; 5import java.util.List; 6 7import com.orangesignal.csv.manager.CsvEntityManager; 8 9public class Main { 10 11 public static void main(String[] args) { 12 try { 13 List<Product> list = new CsvEntityManager().load(Product.class).from(new File("PrefatureSet3.csv")); 14 for(Product product : list) System.out.println(product); 15 } catch(IOException e) { 16 e.printStackTrace(); 17 } 18 } 19 20 } 21
Product.java
1package cse5; 2 3import com.orangesignal.csv.annotation.CsvColumn; 4import com.orangesignal.csv.annotation.CsvEntity; 5 6@CsvEntity 7public class Product { 8 @CsvColumn(name = "都道府県名") 9 private String prefature; 10 @CsvColumn(name = "人口") 11 private int population; 12 @CsvColumn(name = "高齢者率") 13 private double oldPercent; 14 @CsvColumn(name = "地方") 15 private String domestic; 16 17 @Override 18 public String toString() { 19 return new StringBuilder("Product") 20 .append(" [prefature=").append(prefature) 21 .append(", population=").append(population) 22 .append(", oldPercent=").append(oldPercent) 23 .append(", domestic=").append(domestic) 24 .append("]").toString(); 25 } 26}
PrefatureSet3.csv
1都道府県名,人口,高齢者率,地方 2北海道,5228885,0.29 ,北海道 3青森県,1238730,0.30 ,東北 4岩手県,1211206,0.30 ,東北 5宮城県,2303487,0.25 ,東北 6秋田県,960113,0.34 ,東北 7山形県,1068696,0.31 ,東北 8福島県,1834198,0.28 ,関東 9茨城県,2868554,0.27 ,関東 10栃木県,1934016,0.26 ,関東 11群馬県,1940333,0.27 ,関東 12(以下略)
やった事
・WPS SpredSheetsで「Prefature Set.csv」として保存する
・「Prefature Set.csv」をメモ帳のプログラムで開く
・名前を付けて保存「Prefature Set3.csv」という名前で文字コード「UTF-8」として保存する
回答1件
あなたの回答
tips
プレビュー