Escrever no properties

6 respostas
D

O form que estou tentando gravar está na Package view e o arquivo esta na pakage controlles, como faço para conseguir pegar esse arquivo.

File file = new File("./controlles/Config.properties");      
        Properties props = new Properties();  
        FileInputStream fis = null;  
        try {  
            fis = new FileInputStream(file);  
            //lê os dados que estão no arquivo  
            props.load(fis);    
            fis.close();  
        }  
        catch (IOException ex) {  
            System.out.println(ex.getMessage());  
            ex.printStackTrace();  
        }  
        
        props.setProperty("server",tfServer.getText());
        
        //o arquivo encontra-se no mesmo diretório da aplicação  
        FileOutputStream fos = null;  
        try {  
            fos = new FileOutputStream(file);  
            //grava os dados  no arquivo  
            props.store(fos, "Configurações salvas");    
            fos.close();  
        }  
        catch (IOException ex) {  
            System.out.println(ex.getMessage());  
            ex.printStackTrace();  
        }

6 Respostas

francislon

Já tentou:

File file = new File("../controlles/Config.properties");
D

Sim já tentei, mas não funcionou!!! Alguma outra dica

julianolandim

eu não testei mas tenta ai

String file = getClass().getResource("/controlles/Config.properties").getFile();

Depois você avisa se deu certo
T+ :thumbup:

D

Não funcionou!!

Alguma outra dica?

infax01

dudcode, o diretório de trabalho (working directory) para seu programa, por padrão é a raiz do projeto quando executado de dentro do compilador. Isto é, se o seu projeto se chama ConfiguraPropriedades e está guardado em C:\Projetos, então o programa está procurando o Config.properties em C:\Projetos\ConfiguraPropriedades\controlles.

Se você colocar “File file = new File(”./src//controlles/Config.properties") deve funcionar.

:!: ATENÇÃO: Quando o programa for distribuído, no entanto, você terá o mesmo problema novamente, pois a distribuição não contém a hierarquia de diretórios do projeto.
Idealmente, mude o seu ANT para criar um diretório de configuração na distribuição e copiar o arquivo com a configuração padrão para lá. Se não souber como fazer, pesquise um pouco sobre o ANT. Isso pode ajudar um bocado na criação de distribuições profissionais.

Para resolver o problema de saber de onde o programa executava, usei:

File dir = new File(".");
System.out.println(dir.getAbsolutePath());
hvivox

interessante!!!

Criado 11 de setembro de 2011
Ultima resposta 11 de set. de 2011
Respostas 6
Participantes 5