Что я пытаюсь сделать. Используя OpenCSV, напишите метод, который позволит мне получать информацию из определенного столбца в CSV. Этот CSV (на практике) будет иметь только две строки: строку заголовка и одну строку информации. Мне нужно взять определенные биты и манипулировать ими, чтобы поместить их в другой CSV (но я еще не зашел так далеко).
Проблема. Каждый раз, когда я вызываю этот метод, он перемещается вниз по строке. Пример: я ищу идентификатор продукта, и он возвращает идентификатор продукта в строке 2, что хорошо. Затем я снова запускаю его и ищу описание, и оно возвращает описание в строке 3. Не очень хорошо. Запустите его еще раз, и он найдет правильный столбец в строке 4. Опять же, нехорошо. Нужно будет смотреть только на строку 2. Мне кажется, что ответ очень прост, но я его не вижу.
public class Application {
public static String ItemNabber(String item, CSVReader reader, String [] headerLine) throws IOException {
String passedItem = null;
try {
for (int i = 0; i < headerLine.length; i++){
if (headerLine[i].equals(item)) //customize name
{
String [] itemFound = reader.readNext();
System.out.println(itemFound[i]);
passedItem = itemFound[i];
itemFound = null;
}
}
}
catch (FileNotFoundException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
return passedItem;
}
public static void main(String[] args) throws IOException {
JFileChooser chooser = new JFileChooser();
FileNameExtensionFilter myFilter = new FileNameExtensionFilter("Text Files", "txt", "csv");
chooser.setFileFilter(myFilter);
int returnVal = chooser.showOpenDialog(null);
if(returnVal == JFileChooser.APPROVE_OPTION)
{
System.out.println("You chose to open this file: " +
chooser.getSelectedFile().getAbsolutePath());
}
String filePath = String.format(chooser.getSelectedFile().getAbsolutePath());
CSVReader reader = new CSVReader(new FileReader(filePath), '|');
String [] headerLine = reader.readNext();
ItemNabber("PRODID", reader, headerLine);
ItemNabber("DESCR", reader, headerLine);
В этом примере он находит правильный PRODID, но просматривает строку вниз, чтобы найти описание.
Заранее спасибо!