我正在尝试将CSV文件中的数据添加到列表中。目前我在下面有这个代码,但只要我尝试运行它,应用程序就会关闭。
alpha=-1,000,000,000
我已经询问过如何阅读CSV文件并获得了其他问题的清单,但是,在处理完毕后我无法解决我的问题。
我需要做的基本要点是从CSV文件中获取该列表,并从中创建一个我可以添加到“位置”的列表。
答案 0 :(得分:0)
请勿尝试手动解析CSV,因为此格式周围存在许多极端情况(引用转义等)。使用univocity-parsers它应该可以正常工作。
试试这段代码:
CsvParserSettings config = new CsvParserSettings();
//configure what you need by hand, or just do this:
config.detectFormatAutomatically();
CsvRoutines csv = new CsvRoutines(config);
File input = new File("C:\\Users\\MyName\\Documents\\MyApplication\\app\\src\\main\\res\\raw\\geo_locations.csv");
Map<String, GeoLocation> locations = new LinkedHashMap<String, GeoLocation>();
for(GeoLocation geo : csv.iterate(GeoLocation.class, input)){
locations.put(geo.city, geo);
}
我的GeoLocation
实施:
public class GeoLocation{
@Parsed(index = 0)
String city;
@Parsed(index = 1)
Double longitude;
@Parsed(index = 2)
Double latitude;
@Parsed(index = 3)
TimeZone timeZone;
public void setTimeZone(String timeZone){
this.timeZone = TimeZone.getTimeZone(timeZone);
}
}
答案 1 :(得分:0)
更改您的文件路径,如@Fildor所说,例如“assets”