Java - Создать файл
В этом кратком руководстве мы узнаем, как создать новый файл на Java - сначала с помощью JDK6, затем более нового JDK7 с NIO и, наконец, библиотекиApache Commons IO.
Эта статья является частьюthe “Java – Back to Basic” series здесь для примера.
1. С Java - JDK 6
Начнем сthe standard solution using the old JDK 6 File API:
@Test
public void givenUsingJDK6_whenCreatingFile_thenCorrect() throws IOException {
File newFile = new File("src/test/resources/newFile_jdk6.txt");
boolean success = newFile.createNewFile();
assertTrue(success);
}
Обратите внимание, что для успешного выполнения этой операции файл не должен существовать; если файл существует, то операцияcreateNewFile вернет false.
2. С Java - JDK 7
Давайте теперь посмотрим на более новое решение - с использованием поддержки NIO2 в JDK 7:
@Test
public void givenUsingJDK7nio2_whenCreatingFile_thenCorrect()
throws IOException {
Path newFilePath = Paths.get("src/test/resources/newFile_jdk7.txt");
Files.createFile(newFilePath);
}
Как видите, код по-прежнему очень прост; теперь мы используем новый интерфейсPath вместо старогоFile.
Здесь следует отметить, что новый API хорошо использует исключения - если файл уже существует, нам больше не нужно проверять код возврата - вместо этого мы получаемFileAlreadyExistsException:
java.nio.file.FileAlreadyExistsException: srctestresourcesnewFile_jdk7.txt
at sun.n.f.WindowsException.translateToIOException(WindowsException.java:81)
3. С гуавой
Guava решение для создания нового файла также является быстрым:
@Test
public void givenUsingGuava_whenCreatingFile_thenCorrect() throws IOException {
Files.touch(new File("src/test/resources/newFile_guava.txt"));
}
4. С Commons IO
Apache Commons предоставляет методFileUtils.touch(), который реализует то же поведение, что и утилита «touch» в Linux - он создает новый пустой файл или даже файл и полный путь к нему в файловой системе:
@Test
public void givenUsingCommonsIo_whenCreatingFile_thenCorrect() throws IOException {
FileUtils.touch(new File("src/test/resources/newFile_commonsio.txt"));
}
Обратите внимание, что это немного отличается от предыдущих примеров - еслиthe file already exists, the operation doesn’t fail - он просто ничего не делает.
И вот у нас это есть - 4 быстрых способа создать новый файл на Java.