0

嘿,我在这里有一大段代码试图读取 .csv 文件中的一行:

行 = 新 WarehouseItem[];

public void readCSV(String filename) {
  FileInputStream fileStrm = null;
  InputStreamReader rdr;
  BufferedReader bufRdr;
  int lineNum;
  String line;

  try {
    fileStrm = new FileInputStream(filename);
    rdr = new InputStreamReader(fileStrm);
    bufRdr = new BufferedReader(rdr);

    numRows = 0;
    line = bufRdr.readLine();
    while (line != null) {
      rows[numRows] = line;
      numRows++;
      line = bufRdr.readLine();
  }
  fileStrm.close();
  }

  catch (IOException e) {
    if (fileStrm != null) {
      try { 
    fileStrm.close(); 
      } catch (IOException ex2) {}
    }
    System.out.println("Error in file processing: " + e.getMessage());
}
}

rows[numRows] = line我试图将行存储到对象数组中(我已经预先制作了一个包含字符串数组和列数的对象)

我不完全确定如何存储我试图在我的对象中读取的单行。

任何帮助将非常感激 :)

4

1 回答 1

0

如果您使用 CSV 库来执行此操作,您的生活会轻松很多。使用杰克逊,将 CSV 读入对象数组非常简单。

例如:

CsvMapper mapper = new CsvMapper();
mapper.enable(CsvParser.Feature.WRAP_AS_ARRAY);
File csvFile = new File("input.csv"); // or from String, URL etc
MappingIterator<Object[]> it = mapper.reader(Object[].class).readValues(csvFile);

有关在 java 中解析 CSV 的更多信息,请参见此处:http: //demeranville.com/how-not-to-parse-csv-using-java/

于 2013-10-27T11:54:33.163 回答