Namespaces

Variants
Actions

Please note that as of October 24, 2014, the Nokia Developer Wiki will no longer be accepting user contributions, including new entries, edits and comments, as we begin transitioning to our new home, in the Windows Phone Development Wiki. We plan to move over the majority of the existing entries over the next few weeks. Thanks for all your past and future contributions.

Revision as of 10:07, 31 July 2013 by hamishwillee (Talk | contribs)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

JSR 75 File connection API (Português)

From Wiki
Jump to: navigation, search
Article Metadata

Artigo
Tradução:
Por valderind4
Última alteração feita por hamishwillee em 31 Jul 2013

Contents

Introdução

A FileConnection API nos dá a oportunidade de acessar o sistema de arquivos do dispositivo incluindo cartões de memória (Memory Sticks). Ela nos permite fazer uso da funcionalidade de criar, remover diretórios e arquivos, lista de conteúdo de diretórios, configurar permissões, obter informações de arquivos e efetuar operações de entrada e saída nos arquivos. Abaixo estão as importantes classes e interfaces:

  • ConnectionClosedException é lançada quando um método é invocado em uma FileConnection quando a conexão é fechada.
  • FileSystemRegistry classe é a central de registros e tem a habilidade de listar roots montadas através do método listRoots().
  • Ela também providencia métodos para os ouvidores de registros(Registering listeners), estes são notificados se sistemas de arquivos são adicionados ou removidos durante o tempo de execução.
  • A FileSystemListener interface é usada para recepção de notificações de status quando é adicionado ou removido um sistema de arquivo raiz.
  • A FileConnection interface é usada para acessar diretórios e arquivos no dispositivo.
    • Ela extende a Connection interface e mantêm inúmeros métodos uteis para criar, remover diretórios e arquivos, lista de conteúdo de diretórios, configurar permissões, obter informações de arquivos e efetuar operações de entrada e saída nos arquivos.

Propriedades do sistema

Para verificar se a “FileConnection API” está implementada use o:

System.getProperty("microedition.io.file.FileConnection.version");

Isto deverá retornar “1.0” se ela estiver implementada.

Usando a “FileConnection API”

Uma vez que a “FileConnection API” usa a Generic Connection Framework para a conectividade com o sistema de arquivos, o procedimento para criar a “FileConnection” usamos o mesmo caminho que o fazemos para criar qualquer conexão “GCF”, com a única diferença que consiste na existência de uma “URL”.

Para criar a “FileConnection”, use o método “open” da “Connector factory”, o qual retorna uma conexão:

Connector.open(string URL);

URLs válidas:

Para memória interna "file://localhost/c:/" ou "file:///c:/". Para cartão de memória "file://localhost/c:/" ou "file:///e:/

Pórem quando o acesso for a outros diretórios na memória interna, crie um objeto “FileConnection” usando a URL abaixo:

FileConnection fc = (FileConnection)Connector.open("file:///c:/");
Uma vez que o modo de parâmetros no método
 Connector.open() <code> não e suportado, tanto a permissão de leitura quanto de escrita são configuradas quando o objeto da “FileConnection” é criado.
 
Quando uma “FileConnection” é criada, o arquivo ou diretório atual que a URL está apontando não deve existir, logo abrir um arquivo/diretório e criar um novo arquivo/diretório é muito semelhante. Isto é necessário para criação de arquivos e diretórios.
 
Lembre-se de fechar a o objeto da “FileConnection” quando você já tiver feito o uso dele:
<code java>fc.close();

Uma “FileConnection” que está apontando para um arquivo não existente não estará habilitada para executar nenhuma operação específica em arquivos ou diretórios. Por exemplo, se você estiver tentar abrir um “InputStream” ou um “OutputStream”, uma java.io.IOException será lançada.

A única diferença é quando a “FileConnection” é aberta e o método create() ou mkdir() é invocado para criar o arquivo ou diretório no sistema de arquivo.

Você sempre pode verificar se o arquivo/diretório existe: fc.exists();

Se ele não existir crie um novo arquivo: fc.create();

Ou crie um diretório: fc.mkdir();

Para excluir um arquivo ou um diretório: fc.delete();

Para listar o conteúdo do diretório que sua “FileConnection” está apontando: Enumeration e = fc.list(); while (e.hasMoreElements()) { System.out.println(((String)e.nextElement())); }

Este método retorna uma enumeração de todos os diretórios e arquivos que estão presentes no diretório. Diretórios são denotados com uma barra “/” em seus nomes retornados. Há uma segunda versão do método list que habilita você à ordenar o conteúdo com um filtro:

list(String filter, boolean includeHidden)</t>

O método retorna o conteúdo que é passado pelo filtro, o filtro poderia ser “*.mp3” para listar apenas arquivos que terminam com .mp3. Use o atributo <tt>includeHidden para indicar quando os arquivos marcados como ocultos devem ser incluídos ou não na lista de arquivos e diretórios retornados. Estes métodos retornam diretórios e arquivos em ordem aleatória, logo você precisa organizá-los manualmente.

O FileSystemRegistry o método estático listRoots() para listar diretórios raízes disponíveis e suportados no dispositivo. A lista retornada com um “Enumeration”:

Enumeration e = FileSystemRegistry.listRoots(); while (e.hasMoreElements()) { String rootName = (String)e.nextElement(); System.out.println("mounted root:"+rootName); }

Leitura e escrita de arquivos

Se você tem usado a “GCF connection framework”, você estará bem familiarizado com a leitura e escrita de arquivos. Para escrever um arquivo você necessita pegar um “OutputStream” do objeto “FileConnection” que aponta para o arquivo existente:

OutputStream os = fc.openOutputStream() os.write(new String("hello").getBytes()); os.close();

Ou você pode usar o “DataOutputStream” para escrever tipos de dados primitivos de java em um arquivo:

int i = 1234; DataOutputStream ds = fc. openDataOutputStream(); ds.writeInt(i); ds.close();

Para fazer a leitura de um arquivo você usa o “InputStream” ou um “DataInputStream” de um objeto “FileConnection” que está apontando para um arquivo existente:

byte[] b = new byte[1024]; InputStream is = fc.openInputStream(); is.read(b); is.close();

Informações sobre diretórios e arquivos

Existe bastante métodos na classe “FileConnection” que são usados para extrair informações sobre diretórios ou arquivos específicos. Aqui estão alguns deles:

boolean canRead() - O arquivo/ diretório pode ser lido?

boolean canWrite() - O arquivo/diretório pode ser escrito?

long directorySize(boolean includeSubDirs) - Retorna o tamanho de todos os arquivos, contidos em um diretório, em “bytes”. Se o “includeSubDirs” for “true” o tamanho de todos os sub-diretórios também são incluídos.

long fileSize()  - Retorna o tamanho do arquivo em “bytes”.

long lastModified() - Retorna a data de quando o arquivo/diretório foi modificado pela última vez.

This page was last modified on 31 July 2013, at 10:07.
176 page views in the last 30 days.

Was this page helpful?

Your feedback about this content is important. Let us know what you think.

 

Thank you!

We appreciate your feedback.

×