Para ler de um ficheiro podes usar a classe BufferedReader, crias a instancia, e o metodo para ler pode ser o read() ou readLine() dependendo do teu objectivo.
Em alternativa o Scanner, com os metodos next() ou nextInt() ou nextLine(), uma vez mais depende do objectivo.
Dá uma olhada na API do java.
Posso dar-te uma ajudinha, relativamente à leitura do ficheiro, com o scanner:
Código:
Scanner leitor = new Scanner(new FileReader(args[0])); //O args[0] é o parametro da cmd
Se pretendes ler cada valor do ficheiro e colocar na matriz, fazes o seguinte:
Código:
int[][] matriz1 = new int[xpto1][xpto2];
for (int i = 0; i < xpto1.length; i++)
for (int j = 0; j < xpto1[i].length; j++;
matriz1[i][j] = leitor.nextInt();
Assumindo que o ficheiro tem os valores certos, isto é, não tem valores a menos.
Fazes o mesmo para a segunda matriz, e em vez de args[0] usas o 1.
Desenvolves o resto do algoritmo, etc etc.
Para escrever no ficheiro, usas o args[2].
A classe é o BufferedWriter, por exemplo:
Código:
BufferedWriter f_out = new BufferedWriter(new FileWriter(args[2]));
Depois é escrever para o ficheiro, cada posicao da tua matriz_resultado:
Código:
for (bla bla bla, igual ao de cima)
for (bla bla bla, igual ao de cima)
f_out.write(matriz_resultado[i][j]);
Mais coisa menos coisa, com a ajuda do eclipse consegues safar-te bem, ou outro IDE mágico.
Os args[x], se não souberes para o que serve, é para quando correres o teu programa, ao fazeres:
java RunPrograma fich1.txt fich2.txt fichResultado.txt
args[0] = fich1.txt;
args[1] = fich2.txt;
args[2] = fichResultado.txt;
No final do metodo onde usas o Scanner e o/s BufferedReader/Writer, convém sempre fechar, para não ficar dados no buffer, isto é:
leitor.close();
f_out.close();
Nos exemplos que te dei.
Não sei se fui suficientemente claro, mas a esta hora já é dificil ter noção da realidade