Hoje venho aqui novamente relatar novidades descobertas durante o desenvolvimento do projeto Boot (o programa gerenciador de Hyperlinks), que agora se encontra em sua versão V 1.2:
Link do código do Projeto (Versão 1.2):
O assunto de hoje é a manipulação de arquivos (Files) diversos, sendo que vamos tratar em particular a criação de arquivos .txt para armazenar informações do nosso programa, de modo que seja possível salvar os dados fornecidos pelo usuário em um arquivo externo.
Assim, é possível recuperar esses dados em uma futura execução do programa, como estamos habituados a abrir e salvar arquivos de texto .doc, por exemplo.
---//---
[Class File]
Essa classe tem a função exclusiva de navegação através dos diretórios e exibição das propriedades dos arquivos, como tamanho, última alteração, sua existência, etc. Resumindo, tem as funcionalidades do explorer. Sua importação é feita por:
import java.io.File;
Nada melhor para mostrar o emprego de uma classe que um exemplo de aplicação prática. A seguinte aplicação é um explorador rústico de arquivos, que mostra as informações do arquivo/diretório digitado:
-------------------------------------------\\-----------------------------------------------
package cmd; import javax.swing.*; import java.io.File; public class CMD { public static void main(String[] args) { JOptionPane.showMessageDialog(null, "Bem vindo ao Explorer", "Explorer", JOptionPane.WARNING_MESSAGE); String caminho = JOptionPane.showInputDialog(null,"Digite algum endereço."); while(!navega(caminho)) caminho = JOptionPane.showInputDialog(null,">>"+caminho+"\nDigite algum endereço."); } public static boolean navega(String caminho) { String info = ""; File arquivo = new File(caminho); if( arquivo.exists() ) { info+= "O caminho especificado existe !\n"+ ">>"+caminho+"\n\n"; if(arquivo.isFile()){ info += "É um arquivo de tamanho "+arquivo.length()+ " bytes\n" + "Útima vez modificado "+arquivo.lastModified()+"\n" + "Cujo caminho é "+arquivo.getPath()+"\n"; JOptionPane.showMessageDialog(null, info, "Alerta", JOptionPane.WARNING_MESSAGE); return true; } else { info += "O diretório contém os arquivos:\n"; String[] arquivos = arquivo.list(); for( String file : arquivos) info += file +"\n"; } } else info += "Endereço errado"; JOptionPane.showMessageDialog(null, info, "Alerta", JOptionPane.WARNING_MESSAGE); return false; } }
-------------------------------------------\\-----------------------------------------------
Código 1 - Explorador de arquivos e diretórios.
Cuidado apenas ao abrir diretórios muito grandes, pois poderá gerar uma janela muito grande, o que será um pouco desconfortável.
Figura 1 - Programa Explorer.
---//---
[Class Formatter]
A classe Formatter é usada para escrever em arquivos. Assim como na linguagem C, deve-se usar comandos para abrir e fechar o arquivo .txt a ser manipulado. Sua inclusão é feita por:
import java.util.Formatter;
A chamada "fopen" é feita por:
try { arquivo = new Formatter(file + ".txt");
} catch (...) { ...}
A estrutura try - catch tem a funcionalidade de evitar possíveis erros na geração do arquivo, como falta de permissão de criação do arquivo (diretório restrito ou arquivo já existente).
A chamada "fclose" é bem simples:
arquivo.close();
Sua escrita é relativamente simples e sem complicação:
arquivo.format(stringAescrever);
---//---
[Class Scanner]
A classe Scanner é usada ler arquivos. Assim como na linguagem C, deve-se usar comandos para abrir e fechar o arquivo .txt a ser manipulado. Percebe-se grandes semelhanças entre esta classe e a classe Formatter:
import java.util.Scanner;
A chamada "fopen" é feita por:
try {
arquivo = new Scanner(new File(filename + ".txt");
} catch (...) { ...}
A estrutura try - catch tem a funcionalidade de evitar possíveis erros na leitura do arquivo, como a inexistência do arquivo. Note que este problema pode ser resolvido usando a Classe File, vista no post de hoje.
A chamada "fclose" é bem simples e idêntica à da classe Formatter:
arquivo.close();
Sua leitura não poderia ser mais simples:
entrada.hasNext();
Nenhum comentário:
Postar um comentário