我正在使用Apache MetaModel来获取架构信息。有一个用例,我需要为没有头的csv文件创建[ 2, 0, 2, 0, 0, 3, 0, 0, 1, 0, 0, -2, 4, -2, 0, 0,
-3, -3, -5, 1, 0, 0, 0, 2]
对象。我在单独的数据结构(CsvDataContext
)中有列名。
List<String> colNames
对象给出的列名称为context
。我猜元模型会为没有标题的表分配一些默认的列名。
是否有任何方法可以修改"A", "B", "C", etc
对象所拥有的架构?
我相信CsvDataContext
应该可以,但是文档中没有公开任何允许修改元数据(如列名)的方法。
如何实现这种情况?
答案 0 :(得分:1)
创建CsvDataContext
时,您指定一个CsvConfiguration
。 CsvConfiguration
中的选项之一是提供ColumnNamingStrategy
。缺省策略实际上是使用字母字符A
,B
,C
等。但是您可以使用自定义命名策略,如下所示:
ColumnNamingStrategy columnNamingStrategy =
ColumnNamingStrategies.customNames("id", "foo", "bar", "baz");
CsvConfiguration configuration = new CsvConfiguration(
0, columnNamingStrategy, "UTF-8", ',', '"', '\\', true, false);
return new CsvDataContext(file, configuration);