·

Ciência da Computação ·

Linguagens de Programação

Envie sua pergunta para a IA e receba a resposta na hora

Fazer Pergunta

Texto de pré-visualização

Laboratório de Programação II Arquivos Prof Me Rober Marcone Rosi Unidade de Engenharia e Computação O que é um arquivo Um arquivo é um local reservado para se guardar informações escritas para uso futuro Um bom exemplo são os arquivos de aço com pastas e documentos O arquivo de computador é uma maneira de armazenar informações em meios físicos magnéticos ou ópticos como por exemplo discos rígidos discos flexíveis pen drives CDs e etc 2 Arquivotexto Os arquivostexto são organizados em registros e campos 3 Formas de acesso O Java vê cada arquivo como um fluxo sequencial de bytes O sistema operacional fornece um mecanismo para determinar o final do arquivo Como um marcador de fim do arquivo ou uma contagem do total de bytes no arquivo que é registrado nos dados mantidos na estrutura do sistema administrativo Um programa Java que processa um fluxo de bytes recebe uma indicação do sistema operacional sobre quando o programa alcança o final do fluxo 4 Formas de acesso Fluxos de arquivos Fluxos baseados em bytes representam dados no formato binário Arquivos binários criados a partir de fluxos baseados em bytes lidos por um programa que converte os dados em formato legível por humanos Fluxos baseados em caracteres armazenam os dados como uma sequência de caracteres Arquivos de texto criados a partir de fluxos baseados em caracteres eles podem ser lidos por editores de textos O Java abre o arquivo criando um objeto e associando um fluxo a ele 5 Formas de acesso Fluxospadrão cada fluxo pode ser redirecionado Systemin objeto do fluxo de entradapadrão ele pode ser redirecionado com o método setIn Systemout objeto do fluxo de saídapadrão ele pode ser redirecionado com o método setOut Systemerr objeto do fluxo de erropadrão ele pode ser redirecionado com o método setErr 6 Formas de acesso Classes javaio Fonte Devmedia Formas de acesso Classes javaio FileInputStream e FileOutputStream ES baseada em bytes FileReader e FileWriter ES baseada em caracteres ObjectInputStream e ObjectOutputStream os objetos dessas classes podem ser utilizados para ES de objetos ou variáveis de tipos de dados primitivos File útil para obter informações sobre arquivos e diretórios 8 Formas de acesso Classes Scanner e Formatter Scanner pode ser utilizada para ler facilmente os dados em um arquivo Formatter pode ser utilizada para gravar facilmente dados em um arquivo 9 Visualização do Java de um arquivo de nbytes Formas de acesso Arquivos seqüenciais armazenam informações em caracteres no formato ASCII e os dados são gravados na ordem em que são digitados As informações são lidas na mesma ordem em que foram inseridas isto é em seqüência Arquivos de acesso aleatório ou randômico cada registro é gravado em uma posição específica As informações podem ser lidas independentemente da ordem em que foram inseridas 10 Operações de manipulação de arquivos Para a manipulação dos arquivos existem quatro operações básicas que podem ser realizadas 11 Inserção de dados inclusão de novos registros Consulta aos dados operação de leitura ou busca dos dados já armazenados Alteração dos dados tratase da possibilidade de alteração de um ou mais campos do conjunto Exclusão de dados corresponde à operação de eliminação de registros Create Retrieve Update e Delete C R U D A Classe File Classe File útil para recuperar informações sobre arquivos e diretórios no disco nome diretório tamanho permissões de escrita e leitura e outras informações A classe File é ainda uma representação para arquivos e diretórios de sistema trazendo informações adicionais sobre o sistema operacional tais como qual caractere é separador de diretório informações sobre discos disponíveis etc Os objetos da classe File não abrem arquivos nem fornecem capacidades de processamento de arquivos 12 A Classe File Em Java a classe File permite representar arquivos nesse nível de abstração Um dos construtores desta classe recebe como argumento uma string que pode identificar por exemplo o nome de um arquivo em disco Os métodos desta classe permitem obter informações sobre o arquivo Por exemplo exists canRead canWrite length e lastModified e realizar operações sobre o arquivo como um todo como em delete e deleteOnExit 13 A Classe File A classe File fornece quatro construtores 1 Recebe String que especifica nome e caminho localização do arquivo no disco 2 Recebe duas Strings a primeira especificando o caminho e a segunda especificando o nome do arquivo 3 Recebe o objeto File que especifica o caminho e String que especifica o nome do arquivo 4 Recebe o objeto URI que especifica o nome e a localização do arquivo 14 Métodos File comuns 17 exists retorna true se o arquivo existir onde especificado isFile retorna true se File for um arquivo não um diretório isDirectory retorna true se File for um diretório getPath retorna o caminho de arquivo como uma string list recupera o conteúdo de um diretório Dica 18 O método File utiliza isFile para determinar se um objeto File representa um arquivo não um diretório antes de tentar abrir o arquivo Utilizar como um separador de diretório em vez de em uma literal de string é um erro de lógicaUma simples indica que a seguida pelo próximo caractere representa uma sequencia de escapeUtilize para inserir uma em uma literal de string Arquivos de texto de acesso sequencial 19 Os registros são armazenados na ordem por campo de chave de registro Podem ser criados como arquivos de texto ou arquivos binários O Java não impõe nenhuma estrutura a um arquivo registros não existem como parte da linguagem Java O programador deve estruturar os arquivos Criando um arquivo de texto de acesso sequencial 20 A classe Formatter pode ser utilizada para abrir um arquivo de texto para gravar Passa o nome de arquivo para o construtor Se o arquivo não existir ele será criado Se o arquivo já existir o conteúdo será truncado descartado Utiliza o método format para gravar texto formatado no arquivo Utiliza o método close para fechar o objeto Formatter se esse método não for chamado o SO normalmente fecha o arquivo quando o programa é fechado Criando um arquivo de texto de acesso sequencial 21 Possíveis exceções SecurityException ocorre ao abrir o arquivo utilizando o objeto Formatter se o usuário não tiver permissão para gravar dados no arquivo FileNotFoundException ocorre ao abrir o arquivo utilizando o objeto Formatter se o arquivo não puder ser localizado e um novo arquivo não puder ser criado NoSuchElementException ocorre quando uma entrada inválida é lida por um objeto Scanner FormatterClosedException ocorre quando é feita uma tentativa de gravar em um arquivo utilizando um objeto Formatter já fechado Lendo dados a partir de um arquivo de texto de acesso sequencial 22 Os dados são armazenados em arquivos de modo que eles possam ser recuperados para processamento quando necessário O objeto Scanner pode ser utilizado para ler dados sequencialmente em um arquivo de texto Passa o objeto File que representa o arquivo a ser lido para o construtor Scanner FileNotFoundException ocorre se o arquivo não puder ser localizado Os dados são lidos no arquivo utilizando os mesmos métodos como entrada de teclado nextInt nextDouble next etc IllegalStateException ocorre se for feita uma tentativa de ler um objeto Scanner fechado