Criar um arquivo em um diretório específico em Java
1. Visão geral
Neste tutorial rápido, veremos comocreate a file em aspecific directory.
Veremos a diferença entre os caminhos de arquivo absolutos e relativos e usaremos caminhos que funcionam em vários sistemas operacionais importantes.
2. Caminhos de arquivo absolutos e relativos
2.1. Caminhos Absolutos
Vamos começar criando um arquivo em um diretório porreferring to the entire path, também conhecido como caminho absoluto. Para demonstrar, vamos usar o caminho absoluto para o diretóriotemp do usuário e adicionar nosso arquivo nele.
Estamos usandoFiles.touch(), que faz parte do Google Guava, como uma maneira fácil de criar um arquivo vazio:
File tempDirectory = new File(System.getProperty("java.io.tmpdir"));
File fileWithAbsolutePath = new File(tempDirectory.getAbsolutePath() + "/testFile.txt");
assertFalse(fileWithAbsolutePath.exists());
Files.touch(fileWithAbsolutePath);
assertTrue(fileWithAbsolutePath.exists());
2.2. Caminhos relativos
Também podemos criar um arquivo ema directory that is relative to another directory. Por exemplo, vamos criar um arquivo no diretóriotemp do usuário:
File tempDirectory = new File(System.getProperty("java.io.tmpdir"));
File fileWithRelativePath = new File(tempDirectory, "newFile.txt");
assertFalse(fileWithRelativePath.exists());
Files.touch(fileWithRelativePath);
assertTrue(fileWithRelativePath.exists());
No exemplo acima, nosso novo arquivo é adicionado ao caminho do diretóriotemp do usuário.
3. Usando um Separador de Arquivos Independente de Plataforma
Para construir caminhos de arquivo, precisamos usar separadores como/ ou\. No entanto,the appropriate separator to use depends upon your operating system. Felizmente, existe uma maneira mais fácil. Podemos usarFile.separator do Java em vez de caracteres separadores. Como resultado, o Java escolhe o separador apropriado para nós.
Vejamos um exemplo de criação de um arquivo com este método:
File tempDirectory = new File(System.getProperty("java.io.tmpdir"));
File newFile = new File(tempDirectory.getAbsolutePath() + File.separator + "newFile.txt");
assertFalse(newFile.exists());
Files.touch(newFile);
assertTrue(newFile.exists());
UsandoFile.separator, Java sabe como construir caminhos com base no sistema de arquivos subjacente.
4. Conclusão
Neste artigo, exploramos as diferenças entre caminhos absolutos e relativos e como criar caminhos de arquivos que funcionam em vários sistemas operacionais importantes.
Como sempre, o código de exemplo está disponívelover on GitHub.