¿Cómo puedo esperar a la finalización de las operaciones que utilizan la API de Java 7 archivos?

grahamrb:

Estoy escribiendo algo de código Java que crea un directorio y luego pone algunos archivos en ese directorio. No importa el orden en que se crean los archivos, sin embargo, para los archivos que se crearon con éxito las necesidades de directorio a la salida en primer lugar.

Quiero usar el (bastante nuevo) java.nio.Files API, ya que tiene todo un elegante conjunto de métodos para trabajar con archivos y directorios.

Si bien es bueno que la Filesclase es no bloqueante que significa que el directorio no siempre existe. ¿Hay una manera "correcta" para determinar cuando la Files.createDirectories(path)ha completado?

No es particularmente compleja (que es por lo que al igual que el API de archivos), pero aquí algunos ejemplos de código:

Files.createDirectories(path);
Files.write(filename1, "some content".getBytes());
Files.write(filename2, "some other content".getBytes());

En lo anterior pathpodría ser /tmp/blahy filename1= /tmp/blah/fooy filename2= /tmp/blah/bar.

Obviamente, yo puedo hacer esto utilizando alguna otra clase o biblioteca (como Commons IO), pero la estructura en java.nio.Files es bastante agradable.

LppEdd:

Creo que entendió mal. Esas operaciones son en realidad sincrónica, por lo que es bueno ir aquí. Files.writeutiliza un java.io.OutputStreampor ejemplo.

Algunos Nombre dirigió a la posible implementación de createDirectoryLinux.
En Windows, createDirectoryutiliza el CreateDirectory función de API de Windows.

WindowsNativeDispatcher.CreateDirectory(var3.getPathForWin32Calls(), var4.address() /* Security descriptor */);

Buffers, ChannelsY Selectorsson sin bloqueo .

Supongo que te gusta

Origin http://43.154.161.224:23101/article/api/json?id=202052&siteId=1
Recomendado
Clasificación