Manipulação de arquivos em Java: como trabalhar com arquivos Java?

Publicados: 2021-03-12

Java é uma linguagem de programação amplamente popular. Além de arquitetura e componentes robustos , uma das razões mais significativas por trás de seu sucesso e popularidade é o suporte a inúmeras funcionalidades. A manipulação de arquivos em Java é uma dessas funcionalidades que nos permite trabalhar com arquivos. Hoje, aprenderemos sobre várias operações que podemos realizar com os conceitos de arquivo em Java .

Índice

O que é manipulação de arquivos Java?

Como mencionado, a manipulação de arquivos em Java permite trabalhar com arquivos. É uma funcionalidade Java definida na classe File do pacote Java.io. O pacote io in Java.io significa Entrada e Saída. Você encontrará todas as classes necessárias para realizar qualquer operação de entrada ou saída no pacote Java.io.

Você pode acessar e usar essa classe File para executar várias funções criando um objeto e fornecendo o nome do arquivo ou diretório. A sintaxe para criar um objeto e usar a classe File é:

import java.io.File;

Arquivo obj = new Arquivo(“nome.txt”);

Conforme visto na sintaxe acima, primeiro você precisa importar a classe File do pacote Java.io. Uma vez importado, tudo o que você precisa fazer é criar um objeto e especificar o nome do arquivo ou diretório com o qual deseja trabalhar. Para mencionar o nome do diretório em um sistema operacional Windows, você deve usar “\\”. Por exemplo, você deve usar “ C:\\Users\\MyFolder\\MySubFolder ” e não “ C:\Users|MyFolder|MySubFolder .” No entanto, para outros sistemas operacionais, como o Linux, você pode usar o único \ como de costume.

Todas as operações de I/O (Input/Output) dos conceitos de arquivo em Java são feitas com a ajuda de um stream. Vamos nos aprofundar no que é um stream e como essas operações são realizadas com ele?

Qual é o conceito de fluxos em Java?

Em termos mais simples, um fluxo é uma série de dados. Existem dois tipos de fluxo, que são:

  • Fluxo de bytes : Este tipo de fluxo funciona com dados de bytes. As operações de E/S são executadas com um fluxo de bytes quando você lê ou grava dados no formato de byte (8 bits).
  • Fluxo de caracteres : Este tipo de fluxo funciona com sequência de caracteres. As operações de E/S são executadas com um fluxo de caracteres quando você está lendo ou gravando dados usando caracteres.

Checkout: Principais projetos Java no GitHub

Quais são os diferentes métodos disponíveis para manipulação de arquivos em Java?

A classe File fornece vários métodos predefinidos para ajudá-lo a executar todas as operações de E/S simplesmente chamando-os. A tabela abaixo mostra todos os métodos, juntamente com as ações que eles executam.

Método Tipo Descrição
pode ler() boleano Ele verifica se você pode ler o arquivo ou não.
pode escrever() boleano Ele testa se você pode gravar no arquivo ou não.
criarNovoArquivo() boleano Isso criará um novo arquivo vazio.
excluir() boleano Este método excluirá o arquivo especificado.
existe() boleano Verifica se o arquivo mencionado existe.
getNome() Corda Retorna o nome do arquivo.
getAbsolutePath() Corda Retorna o caminho absoluto do arquivo.
comprimento() Grandes Retorna o tamanho do arquivo em bytes.
Lista() Corda[] Retorna uma lista de nomes de arquivos presentes no diretório.
mkdir() boleano Este método criará um novo diretório.

Como executar diferentes operações de manipulação de arquivos Java?

Como você conhece os diferentes métodos disponíveis na classe File, é hora de usá-los para realizar várias operações de manipulação de arquivos Java . Para começar, você pode concluir as seguintes ações em um arquivo.

  • Crie um novo arquivo.
  • Obter informações do arquivo.
  • Escreva em um arquivo.
  • Ler de um arquivo.
  • Excluir um arquivo.

Estaremos passando por um exemplo para realizar cada uma dessas operações. No primeiro exemplo, criaremos um novo arquivo e usaremos o mesmo arquivo para realizar outras tarefas.

Criando um arquivo

Você pode criar um arquivo com o método createNewFile(). A execução do método retornará true ou false. Se o arquivo for criado com sucesso, ele retornará um verdadeiro. Por outro lado, se o arquivo já existir, ele retornará um false.

É sempre aconselhável usar este método dentro de um bloco try and catch, pois ele pode lançar uma exceção se o arquivo não for criado com sucesso. Você pode aprender mais sobre isso em nosso guia sobre manipulação de exceções em Java . Veja o exemplo abaixo que usa o método createNewFile() para criar um novo arquivo vazio.

import java.io.File; //Importando a classe File

import java.io.IOException; // Importando a classe IOException para tratamento de erros

classe pública CreateFileExample{

public static void main(String[] args){

experimentar{

Arquivo obj = new File(“newFile.txt”);

if(obj.createNewFile()){ // se retornar true, ou seja, criado com sucesso

System.out.println(“O arquivo foi criado com sucesso:” + obj.getName());

}

else{ // se retornar false, ou seja, o arquivo já existe

System.out.println(“Arquivo já existe”);

}

}

catch (IOException e){ // para capturar exceções se ocorrer algum erro

System.out.println(“Ocorreu um erro”);

e.printStackTrace();

}

}

}

Saída:

O arquivo foi criado com sucesso: newFile.txt

Obtendo informações do arquivo

Você pode usar vários métodos definidos na classe File para acessar as diferentes informações do arquivo, como nome, comprimento, caminho absoluto, legível e muito mais. Alguns dos métodos para obter informações do arquivo são usados ​​no exemplo abaixo.

import java.io.File;

classe pública AccessInfoExample{

public static void main(String[] args){

// Criando um objeto

Arquivo obj = new File(“newFile.txt”);

if(obj.exists()){

// Obtendo o nome do arquivo

System.out.println(“O nome do arquivo é:” + obj.getName());

// Obtendo o caminho absoluto

System.out.println(“O caminho absoluto do arquivo é:” + obj.getAbsolutePath());

// Verificando se o arquivo é gravável

System.out.println(“O arquivo é gravável?” + obj.canWrite());

// Verificando se o arquivo está legível

System.out.println(“O arquivo é legível?” + obj.canRead());

// Obtendo o comprimento em bytes

// Mostrará 0 porque ainda não escrevemos nada em nosso arquivo

System.out.println(“Tamanho do arquivo em bytes:” + obj.length());

}

outro{

System.out.println(“Arquivo nomeado” + obj.getName() + “não existe.”);

}

}

}

Saída:

O nome do arquivo é: newFile.txt

O caminho absoluto do arquivo é: D:JavaProgramming:newFile.txt

O arquivo é gravável? verdadeiro

O arquivo é legível? verdadeiro

Tamanho do arquivo em bytes: 0

A saída do exemplo acima pode variar dependendo do nome do arquivo, do caminho onde você o salvou e do tamanho. Se o arquivo especificado não existir, ele mostrará “Arquivo chamado newFile.txt não existe”.

Escrevendo em um arquivo

Para gravar dados de bytes, use a classe FileOutputStream e, para caracteres, use a classe FileWriter. No exemplo abaixo, usaremos a classe FileWriter e seu método write() predefinido para escrever algo dentro do nosso “newFile”.

Uma coisa a notar antes de começar com o exemplo é que sempre que você abre um arquivo para escrita, você precisa fechá-lo com o método close(). Fechar o arquivo permitirá que você recupere os recursos alocados pelo compilador Java para gravar em um arquivo. Vamos dar uma olhada em como fazer isso no exemplo.

import java.io.FileWriter; // Importando a classe FileWriter

import java.io.IOException; // Importando a classe IOException para tratamento de erros

classe pública WriteExample{

public static void main(String[] args){

experimentar{

FileWriter obj = new FileWriter(“newFile.txt”);

obj.write(“Isso será escrito no arquivo newFile.txt!”);

obj.fechar(); //Fechando o arquivo

System.out.println(“Escrevemos com sucesso no arquivo e o fechamos.”);

}

catch(IOException e){

System.out.println(“Ocorreu um erro.”);

e.printStackTrace();

}

}

}

Saída:

Nós escrevemos com sucesso no arquivo e o fechamos.

Lendo de um arquivo

Você pode usar FileInputStream para ler dados de bytes e FileReader para ler dados de caracteres de um arquivo. Como alternativa, você também pode usar a classe Scanner para ler um arquivo. Como já usamos o FileWriter para gravar dados, usaremos a classe Scanner para ler os dados neste exemplo. Assim como durante a escrita, fechar o arquivo aberto também é necessário durante a leitura.

import java.io.File; //Importando a classe File

import java.io.FileNotFoundException; // Importando a classe para tratamento de erros

importar java.util.Scanner; // Importando a classe Scanner para leitura de arquivos de texto

classe pública ReadExample{

public static void main(String[] args){

experimentar{

Arquivo obj = new File(“newFile.txt”);

Scanner robj = new Scanner(obj);

while (robj.hasNextLine()){

String dataInfo = robj.nextLine();

System.out.println(dataInfo);

}

robj.close();

}

catch(FileNotFoundException e){

System.out.println(“Ocorreu um erro.”);

e.printStackTrace();

}

}

}

Saída:

Isso será escrito no arquivo newFile.txt!

Apagando um arquivo

Você pode excluir um arquivo usando o método delete() da classe File. Você também pode excluir uma pasta inteira se estiver vazia. Vamos excluir nosso arquivo “newFile.txt” no exemplo abaixo.

import java.io.File; // Importa a classe Arquivo

classe pública DeleteExample{

public static void main(String[] args){

Arquivo obj = new File(“newFile.txt”);

if(obj.delete()){

System.out.println(“O arquivo chamado” + obj.getName() + “excluído com sucesso.”);

}

outro{

System.out.println(“Arquivo não excluído.”);

}

}

}

Saída:

O arquivo chamado newFile.txt foi excluído com sucesso.

Leia também: Ideias e tópicos do projeto Java

Aprenda cursos de software online das melhores universidades do mundo. Ganhe Programas PG Executivos, Programas de Certificado Avançado ou Programas de Mestrado para acelerar sua carreira.

Conclusão

Neste post, você aprendeu tudo sobre manipulação de arquivos em Java . Java fornece várias dessas funcionalidades, o que a torna uma das linguagens de programação mais populares em todo o mundo. Portanto, não é surpresa que o salário dos desenvolvedores Java na Índia seja muito alto. Se você deseja se tornar um desenvolvedor Java e obter um pacote salarial alto, o curso online gratuito de Java do upGrad é adequado para você.

O curso faz parte do programa upStart, uma iniciativa de aprimoramento de valor inestimável. Depois de concluir o curso gratuito e obter a certificação, você pode optar ainda pela Certificação PG do upGrad em Desenvolvimento Full-Stack . Você obtém mais de 400 horas de material de aprendizado com experiência prática por meio de projetos. Faça o curso e se destaque na área de desenvolvimento de software com conceitos de programação Java.

Como ler e gravar em arquivos em Java?

Um objeto da classe InputStream representa uma fonte de dados da qual os bytes podem ser lidos e um objeto da classe OutputStream representa um destino no qual os bytes podem ser gravados. Esses objetos são usados ​​com várias classes do pacote java.io para ler e gravar arquivos, ler e gravar dados de soquetes e realizar uma variedade de outras operações de entrada e saída.

Quais são as diferentes bibliotecas de manipulação de arquivos em Java?

Existem várias bibliotecas de manipulação de arquivos fornecidas em java. Cada um tem seu próprio propósito e uso. O pacote java.io define as classes básicas de manipulação de arquivos. Portanto, podemos dizer que é a biblioteca de manipulação de arquivos de uso mais geral. O pacote java.nio, também conhecido como pacote New Input/Output, é usado principalmente para transferência de dados de alta taxa de transferência, baixa latência e baixa largura de banda. É seguro, leve e independente de plataforma. Este pacote estende o pacote java.io adicionando APIs baseadas em canal. Além disso, o pacote java.nio.file é para a interface de programação para sistemas de arquivos. Um sistema de arquivos é uma organização hierárquica de dados, independente do meio físico, no qual as informações são armazenadas. Um sistema de arquivos permite o compartilhamento de arquivos e a comunicação entre processos entre aplicativos. Além disso, o pacote java.nio.file.attribute é para as classes e interfaces para os atributos do sistema de arquivos.

Quais são as aplicações de manipulação de arquivos em Java?

A manipulação de arquivos é um dos muitos tópicos interessantes e valiosos de programação Java. É vital para os programadores Java saberem como criar, abrir, ler, escrever, anexar e excluir um arquivo em Java. Isso ajuda os programadores a manipular dados em um arquivo. Existem muitas operações que podem ser executadas em um arquivo, como descobrir o comprimento do arquivo, ler o conteúdo de um arquivo, determinar se o arquivo é gravável e assim por diante.