我有一个CSV文件的规范:
我有这个代码来标记每一行:
public WarehouseItem(String warehouseItem) {
String key, brand, model;
int weightInKG;
double price;
StringTokenizer strTok;
strTok = new StringTokenizer(warehouseItem);
try {
key = strTok.nextToken();
brand = strTok.nextToken();
model = strTok.nextToken();
weightInKG = Integer.parseInt(strTok.nextToken());
price = Double.valueOf(strTok.nextToken());
}
catch (Exception e) {
throw new IllegalStateException("CSV row had invalid format");
}
}
Run Code Online (Sandbox Code Playgroud)
当我尝试运行它时,我得到CSV文件的IllegalStateException.
Exception in thread "main" java.lang.IllegalStateException: CSV row had invalid format
at WarehouseItem.<init>(WarehouseItem.java:23) // throwing exception
at main.loadRecords(main.java:63) // records[numRows] = new WarehouseItem(warehouseItem); storing into array of objects
at main.main(main.java:26) // loadRecords(); calling the function which reads a line
at main.loadRecords(main.java:78) // main(null); recursing back to main
at main.main(main.java:26) // loadRecords(); calling the function which reads a line
Run Code Online (Sandbox Code Playgroud)
下面是CSV文件中一行的示例:
沙发:6,Fremarc,豪华,101,1871.7
我想也许是因为键有ID作为序列号?或者这根本不重要?我很困惑,任何帮助将不胜感激
你可能最喜欢图书馆.解析CSV可能会非常棘手.看看OpenCSV:
http://opencsv.sourceforge.net/
CSVParser parser = new CSVParser();
String[] fields = parser.parseLine(line);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2242 次 |
| 最近记录: |