Ler arquivo e salvar cada linha em uma posição de um array

Pessoal preciso ler um txt com este conteúdo:

0.000000 0.000000 0.000000 0.000000 0.033639 0.000000 0.000000 0.000000 0.000000 0
0.001019 0.000000 0.000000 0.100917 0.060345 0.060345 0.051724 0.008621 0.000000 1
0.000000 0.000000 0.021944 0.006270 0.119565 0.010870 0.043478 0.021739 0.076087 0
0.019473 0.000000 0.000000 0.069874 0.024390 0.048780 0.018293 0.030488 0.018293 3
0.046575 0.000000 0.016438 0.000000 0.113636 0.011364 0.022727 0.045455 0.113636 5

onde cada linha é composta por um vetor de característica e o ultimo caractere é a classe a qual este vetor pertence, enfim…
Leio o arquivo linha por linha e preciso colocar cada linha do arquivo em uma posição de um array e não estou conseguindo fazer isso.
Se alguém puder me ajudar nisso fico grato…

        public static void main(String[] args) throws FileNotFoundException, IOException {
        String dir = "test_2.txt";       
        BufferedReader reader = new BufferedReader(new FileReader(new File(dir)));
        String linha = null;
        //List<String> tokens = new ArrayList<String>();
        List<String> classes = new ArrayList<String>();
        List<String> vetor = new ArrayList<String>();
        //List<String> matriz = new ArrayList<String>();
        int i =0;
        while ((linha = reader.readLine()) != null) {
            StringTokenizer separador = new StringTokenizer(linha);
            i = separador.countTokens(); //pega a quantidade de tokens de cada linha 
            char u = ultimoChar(linha);          
            String cl = Character.toString(u);            
            classes.add(cl); // pega a classe (ultimo caractere)
           
            vetor.add(linha); // aki vai tudo para um array, porém tenho que adicionar uma linha em cada posição do array

        }
        System.out.println(i-1);
        System.out.println(classes);
        System.out.println(vetor);
    }
    //pega a classe de cada vetor de caracteristica
    public static char ultimoChar(String s) {
        char r = (char) 0;
        int i = 0;
        do {
            try {
                r = s.charAt(i++);
            } catch (IndexOutOfBoundsException e) {
                return r;
            }
        } while (true);
    }

Fabiorizzi, aqui vai um exemplo :

		Reader r2 = new FileReader("teste.txt");
		BufferedReader br2 = new BufferedReader(r2);
             List<String> valores = new ArrayList<String>();
	
		String texto2 ;
		
		while((texto2 = br2.readLine()) != null){
		
			valores.add(texto2);
			
			
		}				
		
		r2.close();
		br2.close();