Oi Toony 
Abaixo há um código que fiz tentando resolver seu problema… Ele parece grande mas é porque está todo comentado, que é pra você entender legal e ver se era isso mesmo que você estava precisando. Se você tirar os comentários, o código fica pequeno :).
Se seu problema era ler um número de cada vez e armazenar cada numero em uma posição de matriz, eu sugeri abaixo que você usasse a classe StringTokenizer.
O rodrigoallemand sugeriu que você fizesse splits; eu não uso por estar acostumada com o StringTokenizer, mas ouvi falar que também é muito bom, ou até melhor 
[quote] Outra coisa, como faço se o arquivo tiver por exemplo:
1 6
5 2
8 9
7 4
Como eu leio duas matrizes 2x2 ao invés de uma 4x2 ? [/quote]
Seja qual for a classe que você estiver usando p/ ler o arquivo, basta que você tenha conrtole sobre o você está lendo. Se você sabe que as matrizes do arquivo são 2x3,por exemplo, entao cada 2 linhas do arquivo correspondem a uma matriz, e cada linha deste arquivo vai ter 3 numeros. Você poderia, então, fazer um for que le duas em duas linhas, e dentro dele um outro for que le três números dessas linhas…
Bom, isso tudo foram apenas sugestões…
Espero que te ajude a chegar aonde você quer, junto com as opiniões que você for recebendo, ok! É assim que a gente aprende 
Boa sorte! 
[code]/**
- Le um arquivo com várias matrizes e imprime-as na tela.
- Primeiramente, cada matriz e armazenada em uma matriz temporária antes
- de ser impressa. Este procedimento foi adotado para que o programador (você)
- possa posteriormente realizar algum processamento com os dados desta matriz.
-
- Espero que ajude! Boa sorte!
*/
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.File;
import java.util.Scanner;
import java.util.StringTokenizer;
public class LeMatrizArquivo {
/**
* Retorna dados de entrada digitados pelo usuario no terminal (DOS, Shell, ...)
* @see Scanner
*/
Scanner leEntradaTerminal = new Scanner( System.in );
/**
* Classe responsavel pelo leitura do arquivo.
* @see BufferedReader
*/
BufferedReader leArquivo;
/**
* StringTokenizer é uma classe muito usada para leitura de arquivos e entradas de texto.
* Ela é usada principalmente para ler palavras de uma String. As palavras de uma String
* são separadas por espaços.
*
* Por exemplo :
*
* String frase = "Eu nao mereco isso pra mim!";
* StringTokenizer quebraFrase = new StringTokenizer(frase); // recebe a frase
*
* Com o tokenizer, eu posso imprimir a String frase palavra por palavra:
*
* while( quebraFrase.hasMoreTokens() ){ // enquanto há mais palavras na String guardada pelo tokenizer:
* System.out.println( quebraFrase.nextToken() ); // retorna a próxima palavra da String
* }
*
* Este while produziria:
*
* Eu
* nao
* mereco
* isso
* pra
* mim!
*
* @see StringTokenizer
*/
StringTokenizer leLinhaArquivo;
/** Main.*/
public static void main (String args[]){
new LeMatrizArquivo();
}
/** Construtor.**/
LeMatrizArquivo(){
leArquivoEImprimeInstancias(); // le o arquivo de matrizes e imprime as matrizes
}
/** Le o arquivo e cria uma matriz para cada instancia (matriz).
* Cada matriz lida é armazenada numa matriz temporaria. Esta
* matriz temporaria é impressa para o usuário. Após a impressão,
* o conteúdo da matriz temporária é substituído pela próxima
* matriz do arquivo, que por sua vez sera impressa. Este processo
* de ler e imprimir matrizes continua até que o arquivo acabe.*/
public void leArquivoEImprimeInstancias() {
// usados para percorrer matriz
int i, j;
// indica fim de arquivo
boolean fimArquivo;
// guarda o nome do arquivo
String nomeArquivo;
// matriz temporaria que recebe todas as matrizes do seu arquivo
int matriz[][];
// numero de linhas e colunas da matriz
int N, M;
try {
// Pede ao usuario o nome do arquivo a ser lido.
// Exemplo de entrada: entrada1.txt
// (ou seja, pressupoe-se que o arquivo está no mesmo diretorio do programa)
System.out.print("\n\nEntre com o nome do arquivo: ");
nomeArquivo = leEntradaTerminal.nextLine(); // le a entrada do usuario no terminal
// Pede ao usuario as dimensoes da matriz
// Exemplo de entada: 3 3
System.out.print("\n\nEntre com as dimensoes da matriz: ");
N = leEntradaTerminal.nextInt(); // le a 1a entrada do usuario no terminal
M = leEntradaTerminal.nextInt(); // le a 1a entrada do usuario no terminal
// cria matriz temporaria
matriz = new int[N][M];
// cria classe para ler o arquivo e retornar seu conteudo.
// voce fornece o nome do arquivo e a classe é criada para ler este arquivo.
leArquivo = new BufferedReader( new FileReader( nomeArquivo ) );
// Le todas as matrizes do arquivo.
// Cada matriz é armazenada numa matriz temporária e impressa p/ o usuário.
int nInstancia = 0; // informa qual a instancia(matriz) impressa
String linhaArquivo; // linha lida do arquivo
fimArquivo = false;
while( true ) { // comandos break fazem o while parar quando o arquivo termina
nInstancia++; // seta o numero da instancia atual
/* Lê a matriz: **************************/
// as N linhas seguintes do arquivo correspondem as N linhas da matriz:
for(i = 0; i < M; i++){
linhaArquivo = leArquivo.readLine(); // le uma linha do arquivo (toda a linha)
if( linhaArquivo == null ){ // se nada for retornado, é porque acabou o arquivo:
fimArquivo = true;
break; // sai do laco "for(i = 0; i < M; i++)"
}
leLinhaArquivo = new StringTokenizer(linhaArquivo); // habilita o tokenizer para ler os componetes de linhaArquivo
// le os M elementos deLinhaArquivo
for(j = 0; j < M; j++){
matriz[i][j] = Integer.parseInt( leLinhaArquivo.nextToken());
}
}
// La em cima, foi detectado que o arqiuvo acabou. Entao, nenhuma matriz foi armazenada.
// Nada sera impresso e como nao há mas matrizes , o programa acabou:
if(fimArquivo) break; // sai do while
// Senao... Ok. Uma matriz foi lida e armazenada em matriz[][] //
// Voce pode inserir aqui seu código de processamento de dados em cima de matriz[][], blz? :)
/* Imprime a matriz:*/
System.out.println("Matriz "+nInstancia);
for(i = 0; i < N; i++, System.out.println("\n") )
for(j = 0; j < M; j++)
System.out.print(matriz[i][j]+" ");
// Ok. Vamos para a próxima instancia! :)
}
System.out.println("Fim de execucao.");
} catch( Exception erro ) {
System.out.println("ERRO : " + erro.toString());
}
}
}[/code]