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);
}
}
}
}
}