我正在使用以下代码读取 CSV 文件:
String next[] = {};
List<String[]> dataArray = new ArrayList<String[]>();
try {
CSVReader reader = new CSVReader(new InputStreamReader(getAssets().open("inputFile.csv")));
for(;;) {
next = reader.readNext();
if(next != null) {
dataArray.add(next);
} else {
break;
}
}
} catch (IOException e) {
e.printStackTrace();
}
这会将 CSV 文件转换为数组“dataArray”。我的应用程序用于字典类型的应用程序 - 输入数据的第一列是单词列表,第二列是这些单词的定义。这是加载的数组的示例:
Term 1, Definition 1
Term 2, Definition 2
Term 3, Definition 3
为了访问数组中的字符串之一,我使用以下代码:
dataArray.get(rowNumber)[columnNumber]
但是,我需要能够生成所有术语的列表,以便可以为字典应用程序显示它们。据我了解,访问列本身比访问行要漫长得多(我来自 MATLAB 背景,这很简单)。
似乎为了随时访问我的输入数据的任何行,我最好转置数据并以这种方式读取它;IE:
Term 1, Term 2, Term3
Definition 1, Definition 2, Definition 3
当然,我可以首先提供一个转置的 CSV 文件——但 Excel 或 OO Calc 不允许超过 256 行,而我的字典包含大约 2000 个术语。
欢迎以下任何解决方案:
- 一种在读入数组后转置数组的方法
- 对上面发布的代码的更改,使其以“转置”方式读取数据
- 读取整个数组的整个列的简单方法