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?