codice:
public class Riga{
		private String geneid=null;
	private double[] values=new double[5]; 
		
	public Riga(String idGene,double[] x ) {
    this.geneid=idGene;
    this.values=x;
	}
	public String getgeneid(){
		return this.geneid;
	}
	public void setgeneid(String idGene){
		this.geneid=idGene;
	}
	public double[] getvalues(){
		return this.values;
	}
	public void setvalues(double[] x){
		this.values=x;
	}}
	


public class Head{
	String[]intest=new String[col];
	private static int col=0;
	
	
	public Head(String[] x) {
	    this.intest=x;
	}
	public String[] getHvalues(){
		return this.intest;
	}
	public void setvalues(String[] x){
		this.intest=x;
	}

}



import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
import java.util.ArrayList;
import java.util.StringTokenizer;



public class princ {

	private static String fileName = "Dato2.txt";
	private String geneid=null;
	double[] values=new double[5]; 
	private static int row=0;
	private static int numberOfNumericColumns=0;
	private static int col=0;
	String[]intest=new String[col];
	private ArrayList rows = new ArrayList();
	Head h;
	Riga r;
	String igen="";
	
	
	public boolean insRighe(Riga nuovo){
	       return rows.add(nuovo);
	}
	
	public void carica()throws IOException{
		ArrayList intestazione = new ArrayList();
		
		FileReader reader=new FileReader(fileName);
		BufferedReader br = new BufferedReader(reader); 
		
		
		String line = null;
		
		while ((line = br.readLine()) != null) {
			line = line.replace (',', '.'); 
			if(row==0){
//				qua devi tokenizzare la stringa e mettere i vari valori nell'array di stringhe intest
				h=new Head(intest);	//crei l'oggetto head			

}
			else {
				
				//qua devi tokenizzare la stringa e mettere il primo valore nella stringa igen
				// e il resto nell'arrray di double values
					
				r=new Riga(igen,values); //crei l'oggetto riga
			insRighe(r); //aggiungi 
				}
			row++;
	        
	        
		}
	}
	
	
public static void main(String[] args) throws IOException { 
	princ p=new princ();
	p.carica();
	
}


}
prova così, magari c'è qualche imperfezione