Bem, eu tenho um while neste while ele faz algumas operações em um arquivo e depois gravo as modificações em um txt.
Como eu poderia criar um tempo.log, jogando o tempo de início da execução do while e o fim da sua execução.
fiz assim, ele criou e jogou a hora de entrada dentro do log, mas não estou sabendo fazer com que ele não apague os dados que já foram gravados antes do while, com isso quando ele saia do while ele apaga tudo e escreve de novo, então fico só com a hora de saída.
Olha, se o codigo eh assim como voce mostrou, nao poderia sobrescrever os dados apos sair do loop. Agora, voce manipula esse arquivo DENTRO do loop? tipo, por acaso nao esta recriando ele, ou coisa assim, no loop?
Uma coisa eh certa: o arquivo eh zerado a cada nova execucao do programa…
Rafael Steil
D
darta.lima
Não, eu não manipulo este arquivo dentro do loop, ele está assim mesmo, ele só grava a data final, depois que sai do loop apagando a data inicial, não sei como resolver isso??
Paulo_Silveira
Passe um segundo argumento no construtor do FileWriter, indicando que voce nao quer que apague o conteudo anterior (append):
Mas isso nao impede apenas de sobrescrever o conteudo ao rodar novamente o programa? pelo que entendi, ele grava o conteudo antes de entrar no loop, executa o loop, e ao gravar uma outra linha ( apos o loop ), o conteudo anterior eh sobrescrito. Pelo menos foi o que entendi…
Rafael
D
darta.lima
Rafa, era isso que eu estava achando que estava acontecendo, mas eu reparei uma coisa, quando eu rodei o programa, observei a hora eram 16:00:30, então era para ele gravar no inicio 16:00:30 e no fim 16:20:00, só que o que ele fez, gravou 16:00:30 para o inicio e para o fim, então concluo, que ao eu executar o programa ele grava os dois de uma vez tanto antes do while como depois, ele não está respeitando o while, parece que ele passa direto.Pensei que poderia ser as variáveis hora, minuto e segundo, então criei hora1, minuto1 e segundo1 e coloquei depois do while mas não adiantou.
Não sei mas oque fazer??
Rafael_Steil
Hm… por acaso, ao sair do loop, voce pega novamente o horario? Faca assim, ao inves se separar em hora, minuto e segundo, grave o retorno de
System.currentTimeMillis();
Isso te retorna os milisegundos que o programa ja sendo executado no momento da chamada
Teste e veja se os valores se alteram no arquivo.
Rafael
D
darta.lima
Rafa, assim a princípio funcionou, porque ele fez isso
Tempo de execução
Inicio 16:56:38
Fim 1032466221615
só que o fim ficou ruim, teria como melhorar isso.
deveria ter ficado assim
Tempo de execução
Inicio 16:56:38
Fim 17:14:00
Não entendi porque não funcionou do outro jeito
try{
…
FileWriter escrevelog = new FileWriter(“tempo_normalizacao_us01.log”);
PrintWriter logsaida = new PrintWriter(escrevelog);
logsaida.println(“Tempo de execução”); logsaida.println(“Inicio “+hora+”:”+minuto+":"+segundo);
hhmm, nao exatamente da maneira que voce fez. Assim: as variaveis “hora”, “minuto” e “segundo”, como vc as pega? pelo que estou vendo no seu codigo, esta gravando a mesma coisa pq, ANTES de entrar no loop, vocc grava elas, e APOS o loop, voce grava de novo. Antes de gravar apos o loop, voce precisa pegar novamente a hora, o minuto e os segundos.
Rafael
D
darta.lima
isso mesmo, será que não vai dar para fazer isso??? depois do loop ele tem que pegar a hora,minuto e segundo novamente.
Rafael_Steil
Eh so vc repetir o codigo pra pegar a data… por exemplo, digamos que para pegar a data de inicio vc faca
Date inicio = new Date();
entao, apos o loop, para pegar o horario final, eh so fazer
Date fim = new Date();
isso eh so um exemplo, uma ideia do que eh pra fazer.
Rafael
D
darta.lima
Beleza, essa é a idéia, mas eu poderia pegar somete a hora utilizando este método ai, por exemplo.