RMI - Recebendo dados de um arquivo

Olá!

Como parece que quanto mais estudo, mais vejo que não entendo de java, estou aqui de novo.

Estou tentando desenvolver uma aplicação que faz o seguinte: No lado do cliente, pega dois arquivos .cvs com dados de uma matriz em cada, através de uma interface gráfica, arruma os dados e os passa como parâmetro para o Servidor, que vai fazer a multiplicação entre as matrizes e retornar ao cliente a matriz resultante dessa multiplicação.

Estou tendo mais problema do que posso contar, mas o que tá me travando agora é que não consigo ‘carregar’ o arquivo, pra ler os dados no cliente, a sida é java.io.IOException: Stream not marked. Estou tentando pegar o arquivo com um JFileChooser.
Para o cliente, tendo o seguinte código:

[code]
public void lerArquivo1() throws FileNotFoundException, IOException, RemoteException {
JFileChooser escolha = new JFileChooser();

    // Selecionar apenas arquivos
    escolha.setFileSelectionMode(JFileChooser.FILES_ONLY);

    // Abrindo o seletor e recolhendo o resultado da operação
    int operação = escolha.showOpenDialog(null);

    // Operação inválida, sair!
    if (operação != JFileChooser.APPROVE_OPTION) {
        System.out.println("Selecione um arquivo!");
        System.exit(0);
    }

    // Operação aprovada, recolher arquivo
    File arquivo = escolha.getSelectedFile();
    txtMatrizUm.setText(escolha.getName(arquivo));;
    txtMatrizUm.getText();
    BufferedReader bf = new BufferedReader(new InputStreamReader(new FileInputStream(arquivo)));

    String temp;
    int contLinhas = 0;
    int matriz1[][];

    while ((temp = bf.readLine()) != null) {
        contLinhas++;
    }

    matriz1 = new int[contLinhas][];
    bf.reset();
    for (int i = 0; i < matriz1.length; i++) {
        String linha[] = bf.readLine().split(";");
        matriz1[i] = new int[linha.length];
        for (int j = 0; j < linha.length; j++) {
            matriz1[i][j] = Integer.parseInt(linha[i]);
        }

    }
}[/code]

Eu sei que vou ter mais 465768 problemas com essa aplicação, mas vou começar por esse. Alguém pode me ajudar?