2014-03-05 4 views
0

У меня есть файл CSV с разными столбцами данных.Экспорт CSV-файла в массивы

Пример:

100, 0.1, 0.5 
200, 0.1, 0.1 
300, 0.2, 0.5 

и т.д.

Я хочу сохранить первый столбец в массив, второй столбец в свой собственный массив и так далее, так что я могу использовать их для математических уравнений.

Я действительно не так хорош в java, так голый со мной.

import.java.util.Scanner; 
import java.io.File; 

public class Example 
{ 
    public static void main(String[] args) throws Exception 
    { 
     Scanner s = new Scanner(new File("C://java//data.txt")); 
    } 
} 

Я довольно потерялся до этой точки.

+0

Используйте http://csvjdbc.sourceforge.net/ или что-то в этом роде. То, что вы делаете, - это трудный путь. – matthudson

+0

Итак, что вы говорите, это то, что вы не знаете, что делать? Считаете ли вы в абстрактных терминах то, что вы хотите реализовать? Почему вы создали экземпляр сканера - есть ли какие-либо функциональные возможности в этом классе, который вы планировали использовать, но не сообщают нам? Вам нужно дать нам что-то еще, если вы хотите помочь. – vanza

+0

Посмотрите String.split(), который поможет вам в том, что вам нужно. Первый раскол - 2 столбца (функция разделения подсказок имеет эту возможность), второй раскол состоит в том, чтобы снова разделить оставшиеся данные на массив. удачи. –

ответ

1
You can try this: 

public class ReadCSV { 
    public static List<List<Double>> getDimensionList(String key) throws Exception 
    {   
     List<List<Double>> listOfDimension = new ArrayList<List<Double>>(); 
     List<Double> dimensionList = null;  
     File file = null; 
     BufferedReader br = null; 
     try { 
      file = new File(key); 
      br = new BufferedReader(new FileReader(file)); 

      String strLine = ""; 
      StringTokenizer dimensionVal = null; 
      int lineNumber = 0, tokenNumber = 0; 
      while((strLine = br.readLine()) != null) 
      { 
        dimensionVal = new StringTokenizer(strLine, ","); 
        dimensionList = new ArrayList<Double>(); 
        while(dimensionVal.hasMoreTokens()) 
        { 
         tokenNumber++; 
         dimensionList.add(Double.parseDouble(dimensionVal.nextToken())); 

         if(tokenNumber == 3) 
         { 
          Comparator<Double> comparator = Collections.reverseOrder(); 
          Collections.sort(dimensionList,comparator); 

         } 
        } 
        listOfDimension.add(dimensionList); 
        tokenNumber = 0; 
       lineNumber++; 
      } 
     }catch (Exception e) { 
      throw new Exception(); 
     } 
     finally 
     { 
      if(br != null) 
       br.close();   
     }  
     return listOfDimension; 
    } 

    public static void main(String[] args) throws Exception { 
     System.out.println(getDimensionList("dimension_details.csv")); 
    } 
Смежные вопросы