risolto tutto ok


codice:
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
import java.util.ArrayList;
import java.util.StringTokenizer;
import java.util.*;

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;
	private ArrayList rows = new ArrayList();
	Head h;
	Riga r;
	//String igen="";
	
	
	public boolean insRighe(Riga nuovo){
	       return rows.add(nuovo);
	}
	
	public List stampaRows(){
	     return rows;}
	
	public Head stampaHead(){
	     return h;}

	public void carica()throws IOException{
		
		
		FileReader reader=new FileReader(fileName);
		BufferedReader br = new BufferedReader(reader); 
		
		
		String line = null;
		
		while ((line = br.readLine()) != null) {
			line = line.replace (',', '.'); 
			if(row==0){
				StringTokenizer st = new StringTokenizer(line); 
				numberOfNumericColumns = (st.countTokens()-1); 
			    col=(numberOfNumericColumns+1); 
			    intest=new String[col];
			  int io=0;
			    while(st.hasMoreTokens()){
			    	String aapp=st.nextToken();
			    	if(aapp.compareTo("")!=0)
		    		{intest[io] = aapp;       		
		    		 io++;	
			    
			    }
			    
			    
			   /* for (int i=0;i<=col;i++) {
			   	if(st.nextToken().compareTo("")!=0)
	    		{intest[i] = st.nextToken();       		
	    		 i++;}*/
			   }
			   System.out.println("intest");
			   for(int w=0;w<=intest.length-1;w++){
			   System.out.println(w+" "+intest[w]);	
			   }
			   System.out.println("FINE intest");
			   
			   h=new Head(intest);//crei l'oggetto head		
			   String []qa=h.getHvalues();
			   String asd="";
			   for(int i=0;i<=qa.length-1;i++){
			   	asd=asd.concat(qa[i]+" ");
			   	
			   }System.out.println("head "+asd);//stampo contenuto el head
			}

			else {
				
				 StringTokenizer sta = new StringTokenizer(line);
				 int z=0;
				 while (sta.hasMoreTokens()) {
			        
			       String app=sta.nextToken();
			         if (app.contains("_")){
			         	geneid=	app;
			         	System.out.println("geneid   "+geneid);
			         }else
			         {
			         	values[z]=Double.parseDouble(app);
			         z++;}
			         
			             
			         
			         
			         }
				 System.out.println("val");
				   for(int w=0;w<=values.length-1;w++){
				   System.out.println(w+" "+values[w]);	
				   }
				   System.out.println("FINE val");
				   
				   r=new Riga(geneid,values); //crei l'oggetto riga
				   
				   //stampa il contenuto dell'oggetto riga
				   System.out.println("riga");
				   System.out.println(r.getgeneid());
				   double[] valus=r.getvalues();
				   for(int e=0;e<=valus.length-1;e++){
				   	System.out.println(valus[e]);}
				   
				   
					insRighe(r); //aggiungi 
			      		
							
				}
			row++;
	        
	        
		}
	}
	
	
	public static void main(String[] args) throws IOException { 
		princ p=new princ();
		p.carica();
	
	}


}