我想知道除了第一行(标题)和每行的第一列之外,是否有任何方法可以读取CSV文件?我想如果我跳过数组nextLine []的第0个元素,我可以跳过每一行的第一列,但任何人都可以帮助我如何跳过包含标题的第一行,我只需要检索数据而不是标题。以下是我的代码:
if (CSValreadyExists)
{
try {
reader = new CSVReader(new FileReader(csvfile));
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
String [] nextLine;
try {
while ((nextLine = reader.readNext()) != null) {
// nextLine[] is an array of values from the line
//System.out.println(nextLine[0] + nextLine[1] + "etc...");
scalesFromCSV.add(nextLine[0]); // Factor
scalesFromCSV.add(nextLine[1]); // Scale
scalesFromCSV.add(nextLine[2]); // Scale
scalesFromCSV.add(nextLine[4]); // Scale
scalesFromCSV.add(nextLine[5]); // Scale
scalesFromCSV.add(nextLine[6]); // Scale
Toast.makeText(this, nextLine[1] + "-" + nextLine[2]
+ "-" + nextLine[3] + "-" + nextLine[4] + "-" + nextLine[5]
+ "-" + nextLine[6], Toast.LENGTH_LONG).show();
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
答案 0 :(得分:0)
例如:
if (CSValreadyExists)
{
try {
reader = new CSVReader(new FileReader(csvfile));
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
String [] nextLine;
try {
boolean headersConsumed = false; // helper flag
while ((nextLine = reader.readNext()) != null) {
// nextLine[] is an array of values from the line
//System.out.println(nextLine[0] + nextLine[1] + "etc...");
if(!headersConsumed){ // if headers not consumed
headersConsumed = true;
continue; // skip line with headers
}
scalesFromCSV.add(nextLine[0]); // Factor
scalesFromCSV.add(nextLine[1]); // Scale
scalesFromCSV.add(nextLine[2]); // Scale
scalesFromCSV.add(nextLine[4]); // Scale
scalesFromCSV.add(nextLine[5]); // Scale
scalesFromCSV.add(nextLine[6]); // Scale
Toast.makeText(this, nextLine[1] + "-" + nextLine[2]
+ "-" + nextLine[3] + "-" + nextLine[4] + "-" + nextLine[5]
+ "-" + nextLine[6], Toast.LENGTH_LONG).show();
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
答案 1 :(得分:0)
您不需要编写用于跳过标题的自定义逻辑,您可以使用相应的构造函数。最后一个参数是skipLines,默认值为零(CSVReader.DEFAULT_SKIP_LINES
),因此它会读取标题。
new CSVReader(new FileReader(pathToData), CSVParser.DEFAULT_SEPARATOR, CSVParser.DEFAULT_QUOTE_CHARACTER, 1);