Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java: Общие вопросы > Чтение CSV в Java


Автор: Minih 25.5.2014, 15:35
добрый вечер, надо прочитать csv файлы, в которых такое содержание н-р: 
это означает, что в определенное время -time 2014-04-24 12:35:00 метрика tr_1 имеет такое значение 120. метрика tr_2 имеет такое значение 55 и метрика tr_3 имеет такое значение 890 (данные в разбросе)
Код



time;tr_1;tr_2;tr_3;value 
2014-04-24 12:35:00;120;55;890 
2014-04-24 12:40:00;86;555;689 
2014-04-24 12:45:00;445;7866;235 
etc.


написал код который выводит только содержимое просто:

Код


public static void main(String [] args) {  
  
    Data_To_Load d =new Data_To_Load();  
    d.run();  
    }  
  
    public void run (){  
    String csvFile = "\\hh.csv";  
    BufferedReader br = null;  
    String line = " ";  
    String cvsSplitBy = ";";  
      
    try {  
  
        br = new BufferedReader(new FileReader(csvFile));  
        
        while ((line = br.readLine()) !=null) {  
  
                 
            String[] row = line.split(cvsSplitBy);  
  
            
            System.out.println(   
                    row[0]  
                    + "  " + row[1]  
                    + "  " + row[2]);  
  
        }  
  
       } catch (FileNotFoundException e) {  
        e.printStackTrace();  
    } catch (IOException e) {  
        e.printStackTrace();  
    } finally {  
        if (br != null) {  
            try {  
                br.close();  
            } catch (IOException e) {  
                e.printStackTrace();  
            }  
        }  




не могу понять как можно сделать, так чтобы выводил содержимое файлов при чтении в таком виде:

Код



time                  name      value  
2014-04-24 12:35:00   tr_1      120  
2014-04-24 12:35:00   tr_2      55  
2014-04-24 12:35:00   tr_3      890  
2014-04-24 12:40:00   tr_1      86  
2014-04-24 12:40:00   tr_2      555  
2014-04-24 12:40:00   tr_3      689  
2014-04-24 12:45:00   tr_1      445  
2014-04-24 12:45:00   tr_2      7866  
2014-04-24 12:45:00   tr_3      235 


т.е данные в csv файле находяться в 2-х дименсиональном виде, т.е метрики tr_1 итд. находяться не в столбце а в строке. Как сделать, чтобы метрики tr_1 итд. в строке выдавались в столбец под названием name и значения этих метрик в столбец под названием value и упорядоченно, т.е н-р во время 2014-04-24 12:35:00 метрика tr_1 имеет значение 120 и другие значения остальных метрик в это же время н-р 2014-04-24 12:35:00 метрика tr_2 имеет значение 55 итд. потом уже другой интервал времени 2014-04-24 12:40:00 и опять точно также метрика tr_1 имеет значение 86, метрика tr_2 имеет значение 555 итд. до конца файла? Спасибо

Автор: Mirkes 26.5.2014, 16:32
В вашем случае поможет табуляция smile :
Код

            
            System.out.println(   
                    row[0]  
                    + " \t" + row[1]  
                    + " \t" + row[2]);  


Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)