Então beleza pessoal. :twisted:
Eu criei um pequeno programa para transforma um array de char em uma String para depois salvar em um arquivo txt, mas acontece que quando eu tento salvar as seguintes letras ‘A’, 'B ', ‘C’, ‘D’ ,‘E’, ‘F’, ‘G’ em um arquivo txt a unica coisa que é salva no arquivo é a letra ‘G’ isso ocorre pelo fato de ser um array e todos os valores estarem sendo passado um a um dentro de um loop de [color=blue]for[/color], sendo assim quando se chega ao fim da execução do [color=blue]for[/color] todos os valores que haviam antes já foram substituídos pelo novo valor.
Aqui esta a classe que eu criei que esta dando esse prblema:
public class CharParaString
{
private char megachar;
private String gv;
Classe_Salva_Teste classe_salva = new Classe_Salva_Teste();
//Neste método, ele recebe um array de char da classe "Main_CharParaString"
public void testCharArray(char[] let)
{
//CRiaçção do array de char configurado com o tamanho do array de char[] que é enviado para esse métod.
char[] letra = new char[let.length];
for(int i = 0; i < letra.length; i++)
{
letra[i] = let[i];//Esta armazenando o que foi recebido na variavel letra dentro de um loop for..
System.out.println((char)letra[i]);//Esta imprimindo o que esta sendo passa para letra
megachar = (char)letra[i];
//Esta armazenado os valores do array em uma variavel do tipo char.
gv = Character.toString(megachar);
//Esta convertendo o que estiver contido na variavel "megachar" para uma String.
classe_salva.paraSalvar(gv);//Esta enviando a String gv para a clsse "Classe_Salva_Teste".
}
System.out.println(letra);
}
}
Aqui esta a classe para salvar:
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileWriter;
import java.io.IOException;
import java.io.PrintWriter;
import java.io.StringReader;
import javax.swing.JOptionPane;
public class Classe_Salva_Teste
{
private String recebido_para_salvar;
public void paraSalvar(String entregar){
try{
//Inicializa a variável recebido_para_salvar com o valor do parametro entregar.
recebido_para_salvar = entregar;
System.out.println("Classe_Salva: " + recebido_para_salvar);
//Recebe o que estiver contido em recebido_para_salvar em uma Stream de caractere.
StringReader acumula_String = new StringReader(recebido_para_salvar);
//Recebe o que estiver contida em acumula_string.
BufferedReader leitor_buffer = new BufferedReader(acumula_String);
//O nome que o arquivo salvo tera.
FileWriter nome_para_salvar = new FileWriter("Arquivo_salvo.txt");
//Vai receber o que estiver contida em nome_para_salvar.
BufferedWriter escritor_buffer = new BufferedWriter(nome_para_salvar);
//Recebe o que estiver contida em escritor_buffer para que possa ser escrita
//em um arquivo .txt
PrintWriter escrevendo_arquivo = new PrintWriter(nome_para_salvar, false);
//escritor_buffer.write(recebido_para_salvar);
//escritor_buffer.close();
//Cria uma variável do tipo String que é inializada como null.
String s = null;
//Enquanto houverlinha para ser lida continue escrevendo no arquivo.
while((s = leitor_buffer.readLine()) != null )
escrevendo_arquivo.write(s);
escrevendo_arquivo.close();
//escrevendo_arquivo.print(recebido_para_salvar);
//escrevendo_arquivo.close();
//Tenta tratar alguma exceção.
}catch(IOException e){
JOptionPane.showMessageDialog(null,"Deu merda nessa bagaça\n XP");
}
}
}
E por fim a classe onde esta o método main:
public class Main_CharParaString
{
public static void main(String[] args)
{
CharParaString char_Para_String = new CharParaString();
String arq = "ABCDEFG";
char[] meuChar = arq.toCharArray();//Esta convertendo uma String para um array de char[].
char_Para_String.testCharArray(meuChar);//Esta enviando "meuChar" para a classe CharParaString
}
}
Então eu gostaria de algum jeito de poder concatenar os valore que são armazenados na String: gv = Character.toString(megachar); quando ele recebe os valores, porque senão ele simplesmente substituira o valor que já foi recebido em cada iteração do loop.
Eu já dei uma pesquisada na classes StringBufferhttp://docs.oracle.com/javase/6/docs/api/java/lang/StringBuffer.html e no StringBuilderhttp://docs.oracle.com/javase/6/docs/api/index.html?java/lang/StringBuffer.html
Mas não consegui fazer nada que fizesse o que eu quero, que é concatenar todos os caracteres que é recebido pela variável “gv” em uma unica String gv = Character.toString(megachar);
E enviar ela para a classe “Classe_Salva_Teste” para poder ser salva em um arquivo .txt
Alguém poderia me ajudar com isso.
