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:
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 é:
GO TO FULL VERSION