KnowledgeCity

Java Avançado: E/S

Nestas lições, verá como ler e escrever de e para o sistema de arquivos.

Nestas lições, verá como ler e escrever de e para o sistema de arquivos. A API de arquivo herdada é usada em muitos projetos, estruturas e bibliotecas mais antigas. Apesar da sua idade, a API legada não está obsoleta e ainda pode usá-la com qualquer uma das versões mais recentes do Java.

Aprenderá como java.nio.file.Path faz tudo o que java.io.File pode, e geralmente de uma maneira melhor, com as novas classes capazes de oferecer suporte a links simbólicos, atributos de arquivo adequados, metadados, ACLs e muito mais. Ao trabalhar com arquivos ou caminhos, provavelmente usará a classe java.nio.file.Files e abordaremos muitas funções comuns que operam em arquivos e diretórios. A entrada e a saída abrangem uma ampla faixa de fontes e, naturalmente, precisamos de lidar com o conteúdo do arquivo de caracteres e bytes. A biblioteca NIO está repleta de tudo o que precisamos para cumprir quaisquer requisitos de E/S que possamos enfrentar.

Objetivos de aprendizagem:

  • Descrever a nova biblioteca NIO
  • Compreender como ler e guardar no sistema de arquivos
  • Explicar como criar arquivos temporários

Autor: Scott Stanlick

Duração: 9m · 3 lições
Nível: Advanced
Idioma: Português

Habilidades que você vai adquirir

File I/OProcessador de E/SJava 11Java Imagem AvançadaAPIs JavaE/S não bloqueante (Java)

O Que Você Vai Aprender

  • Descrever a biblioteca Java NIO e suas capacidades de manipulação de arquivo
  • Ler de e escrever para o sistema de arquivo usando Java I/O
  • Usar java.nio.file.Path no lugar da API legada java.io.File
  • Trabalhar com a classe java.nio.file.Files para operações comuns de arquivo e diretório
  • Manipular metadados de arquivo, atributos, ACLs e symlinks
  • Criar arquivos temporários usando a biblioteca NIO

Principais Conclusões

  • A API legada java.io.File não foi depreciada e ainda funciona com as versões mais recentes do Java.
  • java.nio.file.Path faz tudo o que java.io.File pode fazer e geralmente o faz melhor, suportando symlinks, atributos de arquivo, metadados e ACLs.
  • A classe java.nio.file.Files fornece muitas funções comuns que operam em arquivos e diretórios.
  • Entrada e saída cobrem uma ampla gama de fontes, exigindo manipulação tanto de conteúdo de arquivo de caractere quanto de byte.
  • O curso cobre leitura, escrita e trabalho com metadados de arquivo.

Perguntas Frequentes

O que este curso cobre?

Cobre como ler e escrever de e para o sistema de arquivo em Java, incluindo a biblioteca NIO, as classes java.nio.file.Path e java.nio.file.Files, metadados de arquivo e criar arquivos temporários. As lições incluem Reading, Writing e File Metadata.

Este curso ensina a API de arquivo legada ou a biblioteca NIO mais recente?

Ambas. Explica a API de arquivo legada, que ainda é usável e não foi depreciada, enquanto mostra como java.nio.file.Path e a biblioteca NIO geralmente fazem o mesmo trabalho melhor, com suporte para symlinks, atributos de arquivo, metadados e ACLs.

Quais habilidades vou ganhar com este curso?

Você ganhará habilidades em File I/O, I/O processing, Java 11, Java Advanced Imaging, Java APIs e Non-Blocking I/O em Java.

Quais são os objetivos de aprendizado?

Os objetivos são descrever a nova biblioteca NIO, compreender como ler e escrever para o sistema de arquivo e explicar como criar arquivos temporários.

Transcrição

Transcrição

Ei, bem-vindo de volta. Scott Stanlick aqui. Nestas lições, vamos dar uma olhada na entrada/saída do arquivo. E veremos como ler arquivos, gravar arquivos, obter metadados sobre arquivos. Então eu quero começar meu apenas dizendo que em Java você tem a capacidade de leitura e gravação de fluxos de bytes, que são caracteres de oito bits ou fluxos de caracteres, que são caracteres Unicode de 16 bits, e há uma ponte embutida para fazer a transição entre fluxos de bytes e fluxos de caracteres ou fluxos de caracteres para fluxos de bytes. E há muitas, muitas maneiras diferentes em que você pode ler o conteúdo. Mas para fluxos de impressão de dados, canalizados, canais, matrizes de bytes, buffers de string, fluxos de entrada de objetos, a lista é longa. Provavelmente há quase tudo possível que você precisaria fazer com relação à leitura ou gravação de arquivos, I/O. Então, a primeira coisa que veremos está lendo um pequeno arquivo usando esta nova biblioteca de E/S, e temos um arquivo, na verdade é um arquivo Java que vamos ler. Vamos usar a classe Files, o método readAllLines, passe o caminho e dê a ele o conjunto de caracteres, que é UTF-8. Então, se executarmos este primeiro teste, Eu recebo um stream e vou dizer para cada linha no fluxo ou para cada elemento no fluxo, Imprima isso. Então podemos ver aqui, com certeza, que se parece com o arquivo, FileReadWriteFun, então aqui está o arquivo que estamos lendo. O próximo nos mostra uma técnica que podemos usar para não ler todas as linhas em e porque se você tivesse um arquivo monstro, como um arquivo enorme, muito grande, você pode não ter memória suficiente para ler todas as linhas. Portanto, há outro comportamento na classe Files chamadas Lines que farão exatamente isso. Você transmite e enquanto lê as linhas aqui, apenas bits do arquivo são carregados na memória por vez. Portanto, é muito mais eficiente em termos de memória. Você realiza a mesma coisa que veremos aqui. Eu ainda vou ler o arquivo inteiro. Mas você leu em pedaços em vez de ler o arquivo inteiro na memória. Portanto, a mesma saída, o mesmo conteúdo, o mesmo resultado. É apenas uma maneira muito mais eficiente de memória de ler partes de um arquivo em em oposição à coisa toda. E a última leitura que veremos é um fluxo de entrada de dados onde temos controle sobre cada byte que lemos em em vez de ler linhas ou todas as linhas. Bem, a abordagem que está sendo usada aqui vamos descobrir quantos bytes estão disponíveis no leitor dado esse caminho. E vamos criar uma matriz de bytes aqui e leia todos os bytes nessa matriz de bytes. E imprima o conteúdo da matriz de bytes como uma string. Então vamos ver. Isso deve resultar na mesma saída. Com certeza sim. Então eu aprecio você assistindo. Muito obrigado.

Aprender em qualquer lugar

Leve seu aprendizado para qualquer lugar — o app da KnowledgeCity permite assistir às lições em qualquer lugar.