Passando matriz para um arquivo.txt

Boa noite Galera!
Estou com problema nesse método, e não estou sabendo oque tem errado.
Eu li um arquivo .txt e passei para uma Matriz, agora quero passar ele para um novo arquivo.
O método esta criando o arquivo, mas quando abro, ele esta sem nada. Mas se passo um texto ele passa escreve no arquivo. mas quando puxo da matriz não.

public void geraRelatorio(String[][] imagem) {

	try {
		FileWriter fw = new FileWriter("relatoriopuzzle.txt");
		
		for (int i = 0; i < imagem.length; i++) {
			for (int j = 0; j < imagem[i].length; j++) {
				fw.write(imagem[i][j]); //Não escreve no arquivo.
                                                                      //fw.write("TEXTO"); Assim ele escreve no arquivo.
			}
			fw.write("\n");
		}
		
	} catch (IOException e) {
		e.printStackTrace();
	}
}

O FileWriter permite que você abra o arquivo e o edite, porém, ele não consegue escrever conteúdos no arquivo.
Para isso, você precisa de outra classe. O java dispõe de varias opções.
Uma delas e esta do devmedia.

Creio que você se confundiu.
Claro que FileWriter consegue gravar conteúdo em um arquivo.
Como todo Writer, o principal propósito dele é gravar caracteres.

Tem certeza de que há conteúdo na matriz?
Posta o código onde você inicializa ela e passa para o método geraRelatorio.

Sim ela ta cheia de caracteres, Cara index da matriz tem uma String.

Esse método le o arquivo txt

public String[][] lerArquivo(String nomeArquivo) {
char[][] auxPuzz = new char[46][81];
String[][] puzz = new String[46][81];
try {
FileReader f = new FileReader(nomeArquivo);
BufferedReader br = new BufferedReader(f);
String linha;
int cont = 0;

		while ((linha = br.readLine()) != null) {
			char[] aux = linha.toCharArray();
			for (int i = 0; i < aux.length; i++) {
				auxPuzz[cont][i] = aux[i];
			}
			cont++;
		}

		for (int i = 0; i < puzz.length; i++) {
			for (int j = 0; j < puzz[i].length; j++) {
				puzz[i][j] = Character.toString(auxPuzz[i][j]);
			}
		}

	} catch (IOException e) {

		e.getStackTrace();
	}
	return puzz;

}

Classe de TESTE:
Carrega a matriz
puz.setPuzzle1(puz.lerArquivo(“arq1.txt”));

Gera Relatorio
puz.geraRelatorio(puz.getPuzzle1());

Alguém pode da uma força?