CodeGym /Blogue Java /Random-PT /Classe Java.io.File
John Squirrels
Nível 41
San Francisco

Classe Java.io.File

Publicado no grupo Random-PT
Em muitos casos, o programa precisa acessar determinados arquivos em seu trabalho. Por exemplo, os dados do usuário podem ser gravados em algum arquivo externo e, para lê-los, o programa precisa ser capaz de trabalhar com eles – abrir, ler dados, possivelmente editar e fechar. Para isso, a linguagem de programação Java possui a classe Java.io.File . Neste artigo, consideraremos que tipo de classe é e daremos um exemplo de como trabalhar com ela.

O que é classe de arquivo Java

A classe File é definida no pacote java.io e não funciona diretamente com streams. A classe Java File serve para gerenciar informações sobre arquivos e diretórios. Como você sabe, no nível do sistema operacional, arquivos e diretórios são objetos diferentes. No entanto, em Java, ambos são descritos pela mesma classe File . Você deve estar se perguntando por que não usar strings apenas para se referir a arquivos? Em primeiro lugar, porque o acesso aos arquivos é diferente em diferentes sistemas operacionais.

Construtores de classe de arquivo

Dependendo se o objeto Java.io.File Class deve representar um arquivo ou um diretório, podemos usar um dos construtores para criar o objeto: File(String pathname) neste caso o construtor cria uma nova instância de File convertendo o nome do caminho fornecido string em um nome de caminho abstrato. File(String myPath, String myString) este construtor cria uma nova instância de File a partir de uma string myPath pathname e uma string myString pathname. File(File parent, String name) cria uma nova instância de File a partir de um nome de caminho abstrato de arquivo e uma string de nome de caminho. File(URI uri) neste caso, o construtor cria uma nova instância de File convertendo o arquivo fornecido: URI em um nome de caminho abstrato. URI é uma classe Java que representa uma referência Uniform Resource Identifier (URI). Aqui está um exemplo de diferentes construtores de classe Java.io.File :

import java.io.File;
import java.net.URI;
import java.net.URISyntaxException;

public class FileTest {
   public static void main(String[] args) throws URISyntaxException {
       File myFile1 = new File("d:\\MyCat");
       File myFile2 = new File ("d:\\MyCat", "cat.txt");
       File myFile3 = new File(myFile1, "cat.txt");
       URI uri = new URI ("https://docs.oracle.com/javase/7/docs/api/java/net/URI.html");
       File myFile4 = new File(uri);
   }
}

Métodos de classe de arquivo

A classe Java File possui vários métodos que permitem manipular arquivos e diretórios. Vamos considerar alguns deles:
  • boolean createNewFile() cria um novo arquivo no caminho passado para o construtor. Retorna verdadeiro se for bem-sucedido, caso contrário, falso

  • boolean delete() exclui um diretório ou arquivo no caminho passado para o construtor. Retorna verdadeiro em caso de exclusão bem-sucedida

  • boolean existe() verifica se existe um arquivo ou diretório no caminho especificado no construtor. Se o arquivo ou diretório existir, retorna verdadeiro, caso contrário retorna falso

  • String getAbsolutePath() retorna o caminho absoluto do caminho passado para o construtor do objeto

  • String getName() retorna o nome abreviado de um arquivo ou diretório

  • String getParent() retorna o nome do diretório pai

  • boolean isDirectory() retorna verdadeiro se o caminho fornecido contiver um diretório

  • boolean isFile() retorna verdadeiro se houver um arquivo no caminho fornecido

  • boolean isHidden() retorna verdadeiro se o diretório ou arquivo estiver oculto

  • long length() retorna o tamanho do arquivo em bytes

  • long lastModified() retorna a hora em que um arquivo ou diretório foi modificado pela última vez. O valor representa o número de milissegundos que se passaram desde a época Unix

  • String[] list() retorna um array de arquivos e subdiretórios que estão em um diretório específico

  • File[] listFiles() retorna um array de arquivos e subdiretórios que estão em um diretório específico

  • boolean mkdir() cria um novo diretório e retorna verdadeiro se for bem-sucedido

  • boolean renameTo(File dest) renomeia um arquivo ou diretório

Alguns recursos da classe Java File

  • O caminho, abstrato ou string, pode ser absoluto ou relativo. O pai de um caminho abstrato pode ser recuperado chamando o método getParent() dessa classe.

  • Primeiramente devemos criar um objeto da classe File , passando para ele o nome de um arquivo ou diretório. O sistema de arquivos pode impor restrições a certas operações no objeto real do sistema de arquivos, como leitura, gravação e execução. Essas restrições são chamadas de permissões de acesso.

  • As instâncias da classe File são imutáveis. Isso significa que, depois de criar um arquivo, o caminho abstrato representado pelo objeto File nunca será alterado.

Exemplos de código de classe de arquivo

Vamos criar um programa que funcione com diretórios. Primeiro de tudo deve-se criar um diretório no caminho fornecido e depois criar um novo arquivo e verificar se o arquivo e o diretório existem.

import java.io.File;
import java.io.IOException;

public class FileTest2 {
   public static void main(String[] args) throws IOException {

       //create a directory using mkdir() File class method
       File dir = new File("d:\\MyDir");
       boolean created = dir.mkdir();
       if(created)
           System.out.println("Folder has been created...");
       else
           System.out.println("Folder hasn't been created...");
       File myFile = new File("d:\\MyDir\\cat.txt");
       myFile.createNewFile();
       System.out.println("File name: " + myFile.getName());
       System.out.println("Parent folder: " + myFile.getParent());
       if(myFile.exists())
           System.out.println("File exists");
       else
           System.out.println("File not found");
      }
}
Aqui está a saída:
A pasta foi criada... Nome do arquivo: cat.txt Pasta pai: d:\MyDir O arquivo existe
A propósito, se você fez tudo certo, poderá encontrar um novo diretório e arquivo em seu computador. Agora vamos escrever um programa onde possamos trabalhar com o diretório criado e o arquivo. Aqui usamos alguns dos métodos descritos acima.

import java.io.File;

public class FileTest3 {

   public static void main(String[] args) {

       File dir = new File("d:\\MyDir");
       File myFile = new File("d:\\MyDir\\cat.txt");
       System.out.println("File name: " + myFile.getName());
       System.out.println("Parent folder: " + myFile.getParent());
       if (myFile.exists())
           System.out.println("File exists");
       else
           System.out.println("File not found");

       System.out.println("Absolute path: " + myFile.getAbsolutePath());

       if (myFile.exists()) {
           System.out.println("Is writable: " + myFile.canWrite());
           System.out.println("Is readable: " + myFile.canRead());
           System.out.println("Is a directory: " + myFile.isDirectory());
           System.out.println("myFile Size in bytes = " + myFile.length());

       }
   }
}
A saída do programa é:
Nome do arquivo: cat.txt Pasta pai: d:\MyDir O arquivo existe Caminho absoluto: d:\MyDir\cat.txt É gravável: true É legível: true É um diretório: false myFile Tamanho em bytes = 0
Comentários
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION