Gravando um count (Atualizando Append) e abrindo um arquivo

Boa tarde pessoal.

Estou precisando após gravação de um arquivo abrir o mesmo na tela, alguém puder ajudar segue o código com os comentários.

Obrigado!


import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.io.PrintWriter;
import java.net.Socket;

public class Tester {

	public static void main(String[] args) throws IOException {

	int count_ok = 0;						
	int count_erro = 0;						
	int Porta = 12345; 						
	String IPs = null; 						
	Socket socket = null;					
	File file = null;					
	FileWriter fileWriter = null;			
	FileReader fileReader = null;			
	PrintWriter printWriter = null;			
	BufferedReader bufferedReader = null;	
	String quebra = "\n";
	String traco = "-----------------------------------------------------------------------" + quebra;
	String IPs_R_OK = traco + "Servico  no(s) servidor(es) abaixo: ** ATIVO - OK! **" + quebra + quebra;
	String IPs_R_ERRO = traco + "Servico no(s) servidor(es) abaixo: ## INATIVO - ERRO! ##" + quebra + quebra;
	String IPs_OK = "";						
	String IPs_ERRO = "";					
                String plataforma = "*** ATENCAO - ERRO!!! ***\n" +
			"Servico(s) provavelmente fora de Atividade!!!" + quebra +
			"Favor acionar o pessoal e " + quebra +
			"solicitar o start do(s) servico(s) no(s) servidor(es) acima." + quebra + traco;
		try {
			file = new File("c:/IPs/Servers.properties");
			fileWriter = new FileWriter("c:/IPs/IPs_Verificados.txt", true);
			printWriter = new PrintWriter(new BufferedWriter(fileWriter, 1*1024*1024));
			fileReader = new FileReader(file);
			bufferedReader = new BufferedReader(fileReader);
		if(file.length() > 0){
			while((IPs = bufferedReader.readLine()) != null ){
			try{
				socket = new Socket(IPs, Porta);
				socket.close();
				//Serviços OK
				printWriter.println(IPs_OK);
				printWriter.println(IPs);
                                                                
//Arqui preciso atualizar/reescrever a quantidade do count_erro ++
				printWriter.println(count_ok ++);
			}catch(IOException ioE){
				//Serviços ERRO
				printWriter.println(IPs_ERRO);
				printWriter.println(IPs + quebra);
//Arqui preciso atualizar/reescrever a quantidade do count_erro ++
				printWriter.println(count_erro ++);
			}
		}
			//Finalizando operação/gravação do arquivo
			printWriter.close();
			printWriter.flush();
		}
		} catch (FileNotFoundException ex) {
			//Se arquivo de IP´s vazio, finaliza execução!
			System.out.println("*** ATENCAO: Arquivo " + file + " inexistente ou vazio. ***");
			System.exit(0);
		}finally {

//Se arquivo de leitura não estiver vazio realiza a abertura do mesmo na tela
		if(){

//Se não, se arquivo estiver vazio, escreve mensagem arquivo vazio e abre o mesmo
		}else {
		printWriter.print("*** ARQUIVO VAZIO! *** \nVERIFIQUE NÃO FORAM VERIFICADOS IP´s INFORMADOS NO ARQUIVO DE IP´s.");
			}
			if(socket != null){
				try{
					socket.close();
				}catch(IOException ioE){
					System.out.println("* Problema ao fechar conexao socket.*");
					ioE.printStackTrace();
				}
			}
		}
	}
}//Fim da classe Tester

Galera,

Só resumindo:

  • Como faço para abrir um arquivo (fileWriter);
  • Como consigo atualizar um contador/totalizador dentro desse arquivo em um while;

Se alguém puder ajudar ae, é coisa simples mas na documentação não achei nada no printWriter e nem na net. Vou continuar pesquisando.

Agradeço a ajuda.
Vlw

Você pode tentar trabalhar com arquivos de propriedades. Segue um exemplo simples, qualquer dúvida posta aqui

Properties p = new Properties();
        File f = new File("<caminho>/file.txt");
        if(!f.exists()) {
            f.createNewFile();
        }
        p.load(new FileInputStream(f));
        String prop = p.getProperty("count");
        int count = 0;
        if(prop != null) {
             count = Integer.parseInt(prop);
        }
        
        System.out.println("Count: " + count);
        p.setProperty("count", String.valueOf(++count));
        p.store(new FileOutputStream(f), "Portal Java Powah :p");

Bom dia Bruno.

Então. Eu estou utilizando um arquivo.properties onde relaciono todos os IPs que quero verificar. Após a leitura deste arquivo eu gero um arquivo .txt, relacionando os IP´s que estão ativos e os que não estão ativos.

Como fico em um while, tenho uma variável para contar/acumular as quantidades ok e não ok.

As dúvidas são:

  • Como eu faço para escrever esta variável no arquivo após fim do while (Ok e não OK).
  • Após finalizar o processamento quero abrir este arquivo na tela.

Agradeço a força.

Vlw

Pessoal,

No código abaixo preciso ao invés de imprimir, gerar e escrever em arquivo e abrir o mesmo no final do processamento.

Se alguém puder dar sugestões de como fazer, agradeço. A lógica ta meio zuada, mas vou melhora-la.

Abs,


import java.io.BufferedReader;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.net.Socket;

/**
 * <p>Title: Systen monitorator service </p>
 * <p>Description: Monitorator service </p>
 * <p>Copyright: Copyright (c) 2008</p>
 * <p>Company: </p>
 * @version 2.0
 */
public class Tester {

	public static void main(String [] args) throws IOException {

		int count_ok = 0;			// Soma/acumula quantidade de servidores - ok
		int count_erro = 0;			// Soma/acumula quantidade de servidores - erro
		int Porta = 12345; 			// Porta utilizada pelo Serviço 
		String IPs = null; 			// Recebe os IP´s dos servidores para verificação do Serviço
		Socket socket = null;			// Socket para realizar a verificação do Serviço nos servidores
		File file = null;			// Arquivo contendo IP´s para verificação
		FileReader fileReader = null;		// Arquivo contendo os IP´s onde estão instalados 
		BufferedReader bufferedReader = null;	// Realiza a leitura do conteúdo do arquivo e passa para a String IPs
		String traco = "-----------------------------------------------------------------------\n";
		String IPs_R_OK = traco + "Servico  no(s) servidor(es) abaixo: ** ATIVO - OK! **\n" + traco;
		String IPs_R_ERRO = traco + "Servico  no(s) servidor(es) abaixo: ## INATIVO - ERRO! ##\n" + traco;
		String plataforma = traco + "*** ATENCAO - ERRO!!! ***\n" +
					  "Servico(s)  provavelmente fora de Atividade!!!\n" +
					  "Favor acionar o pessoal e solicitar o start no(s) servidor(es) acima.\n"+traco;
		String IPs_OK = IPs_R_OK + "\n";	// Armazena IPs OK
		String IPs_ERRO = IPs_R_ERRO + "\n";	// Armazena IPs ERRO

		try {
			file = new File("c:/IPs/IPs.properties");
			fileReader = new FileReader(file);
			bufferedReader = new BufferedReader(fileReader);
			if(file.length() > 0){
				while((IPs = bufferedReader.readLine()) != null ){
					try {
						socket = new Socket(IPs, Porta);
						socket.close();
						//Serviços OK
						IPs_OK += IPs + "\n";
						count_ok ++;
					}catch(IOException ioE){
						//Serviços ERRO
						IPs_ERRO += IPs + "\n";
						count_erro ++;
					}
				}
				if(count_erro == 0){
					IPs_ERRO = "";
				}
				if(count_ok == 0){
					IPs_OK = "";
				}
			}else {
				System.out.println("\n*** ATENCAO!!! ***");
				System.out.println();
				System.out.println("NAO FORAM VERIFICADOS SERVICOS-IPs.");
				System.out.println();
				System.out.println("VERIFIQUE. ARQUIVO " + file + " vazio!");
				System.exit(0);
			}
		} catch (FileNotFoundException ex) {
			//Se arquivo de IP´s vazio, finaliza execução!
			System.out.println("\n*** ATENCAO: ***");
			System.out.println();
			System.out.println("Arquivo " + file + " inexistente. ***");
			System.exit(0);
		}finally {
			//Se o arquivo de leitura não estiver vazio realiza a abertura do mesmo na tela
			if((IPs_OK != null) && (!IPs_OK.equals(""))){
				IPs_OK += "\n************************************************************************\n";
				IPs_OK += "---> Total de servidores verificados: " + count_ok + "\n\n";
				System.out.println(IPs_OK);
			}
			if((IPs_ERRO != null) && (!IPs_ERRO.equals(""))){
				IPs_ERRO += "\n**********************************************************************\n";
				IPs_ERRO += "---> Total de servidores verificados: " + count_erro + "\n\n\n";
				IPs_ERRO += plataforma;
				System.out.println(IPs_ERRO);
			}
			if(socket != null){
				try {
				socket.close();
				System.out.println("Confirmando fechamento da conexao socket no finally!!!\n");
				}catch(IOException ioE){
				System.out.println("** Problema ao fechar conexao socket no finally.**");
				System.exit(0);
				}
			}
		}
	}
}