Java I.O: Trabalhando com arquivos em Java

Este artigo apresenta comandos para criar, excluir e copiar arquivos utilizando classes básicas da linguagem Java pertencentes ao pacote java.io.

Fique por dentro
Este artigo apresenta comandos para criar, excluir e copiar arquivos utilizando classes básicas da linguagem Java pertencentes ao pacote java.io. Dentre elas, a principal é a classe File. A fim de ilustrar a utilização de tais funcionalidades, é proposta uma aplicação exemplo que realiza várias operações, mostrando que em Java não é necessário atrelar a aplicação a uma plataforma de sistema operacional específica, obtendo boa performance e ainda possibilitando o controle de erros.

Em muitas aplicações, além do desenvolvimento de regras de negócio, é necessário gerenciar arquivos e/ou diretórios, criando, excluindo ou copiando os mesmos para outras localizações. Para essas finalidades, o sistema operacional oferece, através do shell, um conjunto de comandos capaz de criar, excluir e gerenciar arquivos, além de ser possível executar tais comandos em aplicações Java; porém, essa não é uma solução ideal para ser utilizada, pois leva a uma vinculação muito forte da aplicação ao sistema operacional, desperdiçando assim a portabilidade da plataforma Java e, em muitos casos, degradando a performance do sistema.

Vale ressaltar que é muito comum ocorrerem situações em que projetos de software precisem ser migrados para plataformas diferentes, implicando em adaptações que muitas vezes são difíceis, pois cada plataforma tem a sua forma de manipular arquivos, comandos específicos e detalhes sobre o funcionamento do sistema de arquivos. Para superar essa barreira e ser possível criar aplicações multiplataforma, a linguagem Java oferece comandos genéricos para realizar a manipulação de arquivos sem criar um vínculo forte com a plataforma e, ao mesmo tempo, permitindo o controle e o tratamento de erros.

Para tais finalidades, o pacote java.io oferece a classe File. Esta classe permite a criação, exclusão e outras operações com arquivos. Adicionalmente, o mesmo pacote também disponibiliza streams para arquivos, que são canais de comunicação direcionados para gravar e ler dados de arquivos.

A fim de mostrar o funcionamento de tais recursos, é proposta uma aplicação exemplo que realiza as principais operações de manipulação de arquivos, incluindo a cópia de arquivos por streams e o controle de erros em cada operação. Por fim, é proposta também uma interface gráfica para a aplicação exemplo, visando melhorar a sua usabilidade.

A classe java.io.File

A classe java.io.File está presente desde o JDK 1.0 e oferece uma abstração de arquivo como sendo um recurso, escondendo detalhes de funcionamento do sistema operacional. Uma instância de File tem a função de apontar para um arquivo ou diretório no sistema de arquivos e disponibiliza vários comandos para manipular o recurso referenciado. Seus construtores são listados a seguir:

· File(File parent, String child): Cria um novo objeto File com o caminho indicado por parent concatenado ao valor de child. Não é necessário que o arquivo ou diretório apontado exista;

· File(String pathname): Cria uma nova instância de File usando uma String com o caminho até o recurso;

· File(String parent, String child): Cria um novo objeto File com o caminho indicado por parent concatenado ao valor de child. Não é necessário que o arquivo ou diretório apontado exista;

· File(URI uri): Recebe como parâmetro o caminho para um recurso (URI), que pode ser um arquivo, diretório ou outro recurso local ou remoto.

Nota: Uma URI é um caminho para um recurso local ou remoto que tem um nome. A sua forma geral pode ser definida pela seguinte expressão:

[scheme:]content[#fragment].

Onde: scheme é o tipo de recurso indicado pela URI, que pode ser um nome de protocolo ou indicador de arquivo em um determinado sistema operacional; o conteúdo, dado por content, é um caminho e/ou o nome do objeto; e fragment é opcional e informa uma posição específica no recurso, como por exemplo, o nome de um marcador (landmark) HTML, iniciado sempre por #, como na Listagem 1, que, adicionalmente, mostra outros tipos de URIs.

Listagem 1. Exemplos de URI. // Arquivo no Windows: file:///c:\calendar. // Arquivo no Linux: file:///~/calendar. // Endereço de e-mail: mailto:java-net@java.sun.com. // Esquema de Grupos de Notícias e Artigos: news:comp.lang.java. //Marcador em página HTML: http://docs.oracle.com/javase/7/docs/api/java/io/File.html#delete()." [...] continue lendo...

Artigos relacionados