Tretas e Cenas

Tretas e Cenas


Onde escrevo as minhas tretas. Tão depressa estou a escrever sobre algo poético como a seguir escrevo só para não me esquecer.

Dezembro 2010
S T Q Q S S D
 12345
6789101112
13141516171819
20212223242526
2728293031  

Categorias


“Vending Machine” – 1 de ∞

Pedro FonsecaPedro Fonseca

Olá,

Ao conseguir decifrar o que vou fazer neste artigo só pelo titulo já está assumido que sabe o que estou a tratar. Caso não esteja a fazer sentido nenhum, então é favor de ler isto e tudo ficará mais claro sobre a razão destes artigos.

Com este tipo de artigos pretendo criar as linhas orientadoras para todos os que estão a fazer a cadeira de FP consigam fazer o projecto e como objectivo final, toda a turma passar à cadeira.

Foi abordado numa aula que o código fonte de dois programas que cumpram o mesmo objectivo pode ser diferente caso o seu programador mude, e neste caso não é diferente, a minha abordagem ao problema vai de certeza ser diferente de qualquer outra dos alunos da turma, por isso advirto que esta é uma forma de lá chegar e não é a única.

Agora feitas as introduções vamos por a mão na massa, eu já fiz parte do programa que nos foi pedido, já faz o arranque. Mas para chegar aqui tive de aprender a verificar se existe um ficheiro, criar um ficheiro, adicionar texto a um ficheiro sem perder o que já lá está e trabalhar com datas.

Para verificar se um ficheiro existe, existem algumas formas, mas a mais simples que encontrei foi a seguinte:

boolean flag=false;
File f = new File(ficheiro);
if(f.exists())
flag=true;
else
flag=false;

Isto tem truque, o ficheiro tem de estar localizado na raiz do projecto, mas para se saber em que directoria o JAVA está basta colocar isto no código para ele fazer impressão no ecrã dessa directoria:

String USER_DIR_KEY = "user.dir";
String currentDir = System.getProperty(USER_DIR_KEY);
System.out.println("Directoria: " + currentDir);

Assim já se sabe onde ele vai verificar se existe o ficheiro. Para criar um ficheiro o processo é igualmente simples, ora vejamos:

try{
	FileWriter fstream = new FileWriter("NOME.TXT");
	BufferedWriter out = new BufferedWriter(fstream);
        fstream.close();
}catch (Exception e){
	System.err.println("Erro: " + e.getMessage());
}

Incrementar dados num ficheiro, desde que ele exista, tem um conceito simples de perceber através do código:

File ficheiro = new File("NOME.TXT");
try {
      output = new BufferedWriter(new FileWriter(ficheiro,true));
      output.write(texto + "\r\n");
      output.close();
} catch (IOException e) {
      e.printStackTrace();
}

O \r\n não está ali por acaso, serve para fazer uma quebra de linha no ficheiro em causa e assim quando for escrever a próxima vez já será numa linha seguinte. Está a faltar conseguir trabalhar com datas e como em todo o código aqui apresentado, este é muito curto e simples:

SimpleDateFormat dateformat = new SimpleDateFormat("dd/MM/yyyy hh:mm:ss");
Date novaData= new Date();
String novaData= dateformat.format(novaData);

No fim a variável novaData já contem a data com o formato que se pretende, com estes conceitos e com o conceito de Função julgo que será simples chegar ao ponto de a máquina arrancar.

Espero que seja útil esta informação e que dentro em breve as Vending Machines dominem o mundo 🙂

Comentários 1
  • Hugo Carvalho
    Posted on

    Hugo Carvalho Hugo Carvalho

    Responder Autor

    Boas Pedro,

    Sendo aluno de LEI, também tenho o mesmo trabalho que tu. No entanto, e após ler os teus pedaços de código, pergunto-me se existirá diferença em relação ao “path” do ficheiro caso o programa seja realizado num sistema operativo Windows ou num sistema tipo Unix.

    Eu sei que a nível de PHP (que é mais a minha área), existe sempre o stress das \ (para windows) versus / (para unix).

    Eu vou começar agora a realizar o meu trabalho por isso se me aparecerem mais situações estranhas coloco-as aqui 🙂

    Abraços e bom trabalho