Olá?!! … estou tendo uma dificuldade em meu código. No caso, estou pegando o arquivo “prova.txt” … lendo ele para poder fazer as operações e depois criando o “gabarito.txt” para gravar o resultado dessas operações. Mais no caso, não estou conseguindo colocar nesse arquivo o resultado… quer dizer… fica repetindo o mesmo resultado a todos… mais se eu coloco um system.out… ele imprime corretamente… bom… vou colocar o meu código “LerArquivo” e o “EscrevaArquivos”.
//LerArquivo
public class LerArquivo
{
public LerArquivo ()
{
}
public void lerarquivo (File file)
{
try
{
String texto;
FileReader fileR = new FileReader (file);
BufferedReader buffR = new BufferedReader (fileR);
int result = 0;
int valor1 = 0;
Calcula calc = new Calcula ();
EscrevaArquivos esc = new EscrevaArquivos();
while ((texto = buffR.readLine ()) != null)
{
int cont = 0;
for (int tamanho1 = 0; tamanho1 < texto.length (); tamanho1++)
{
char[] vetor = texto.toCharArray ();
System.out.print (vetor[tamanho1]);
result = vetor[0] - 48;
for (int tamanho2 = 0; tamanho2 < vetor.length; tamanho2++)
{
if (vetor[tamanho2] == '+')
{
valor1 = vetor[tamanho2+2]-48;
result = calc.somar (result, valor1);
tamanho2 += 1;
cont++;
} else if (vetor[tamanho2] == '-')
{
valor1 = vetor[tamanho2+2]-48;
result = calc.subtrair (result, valor1);
tamanho2 += 1;
cont++;
} else if (vetor[tamanho2] == '*')
{
valor1 = vetor[tamanho2+2]-48;
result = calc.multiplicar (result, valor1);
tamanho2 += 1;
cont++;
} else if (vetor[tamanho2] == '/')
{
valor1 = vetor[tamanho2+2]-48;
result = (int) calc.dividir (result, valor1);
tamanho2 += 1;
cont++;
}
}
}
if(cont != 0){
esc.escrever (result);
}else{
System.out.println (" ");
}
}
System.out.println ("");
} catch (FileNotFoundException ex)
{
Logger.getLogger (LerArquivo.class.getName ()).log (Level.SEVERE, null, ex);
} catch (IOException er)
{
System.out.println ("Não foi possivel ler o arquivo!");
}
}
}
//EscrevaArquivo
public class EscrevaArquivos
{
public EscrevaArquivos ()
{
}
public void escrever (int res)
{
System.out.println (" = " + res);
String result = Integer.toString (res);
//String endereco = JOptionPane.showInputDialog ("Digite o endereco do arquivos");
//arquivo para ser lido
File arquivo1 = new File ("prova.txt");//cria o file do arquivo informado
//arquivo para escrita
File arquivo2 = new File ("gabarito.txt");//definindo o nome do locar do arquivo
try
{
arquivo2.createNewFile ();//arquivo criado
/*LEITURA*/
FileReader fileR = new FileReader (arquivo1);//arquivo ppara ser lido
BufferedReader buffR = new BufferedReader (fileR);//arquivo buferizado
/*ESCREVER*/
FileWriter fileW = new FileWriter (arquivo2);//arquivo para escrita
BufferedWriter buffW = new BufferedWriter (fileW);
//enquanto tiver leitura
while (buffR.ready ())
{
System.out.println (">"+result+"<");
//if (linha != null)
// {
buffW.write (buffR.readLine ()+" = "+result);//Leia um arquivo e Escreva no outro
buffW.newLine ();//pula uma linha no arquivoescrever (result);
//} else
//{
// buffW.newLine ();//pula uma linha no arquivoescrever (result);
// }
}
//fechar o buff
buffR.close ();
buffW.close ();
} catch (IOException io)
{
}
}
}
se puderem dar uma força ai…
desde já agradeço pela atenção!!