127 votes

File.separator vs FileSystem.getSeparator() vs System.getProperty("file.separator") ?

Il semble y avoir trois identique des moyens d'obtenir le "séparateur de fichiers" dépendant de la plate-forme indépendamment de la plate-forme :

Comment décider quand utiliser lequel ?

Y a-t-il une quelconque différence entre eux ?

132voto

Bringer128 Points 3590

System.getProperties() peuvent être remplacés par des appels à System.setProperty(String key, String value) ou avec des paramètres de ligne de commande -Dfile.separator=/

File.separator obtient le séparateur pour le système de fichiers par défaut.

FileSystems.getDefault() vous donne le système de fichiers par défaut.

FileSystem.getSeparator() vous donne le caractère séparateur du système de fichiers. Notez qu'en tant que méthode d'instance, vous pouvez l'utiliser pour passer à votre code des systèmes de fichiers différents de celui par défaut, dans les cas où vous avez besoin que votre code fonctionne sur plusieurs systèmes de fichiers dans la même JVM.

29voto

darioo Points 23903

Si votre code ne traverse pas les frontières des systèmes de fichiers, c'est-à-dire que vous ne travaillez qu'avec un seul système de fichiers, utilisez alors java.io.File.separator .

Cela vous permettra, comme expliqué, d'obtenir le séparateur par défaut pour votre FS. Comme Bringer128 l'a expliqué, System.getProperty("file.separator") peut être remplacée par des options de ligne de commande et n'est pas aussi sûre en termes de type que java.io.File.separator .

Le dernier, java.nio.file.FileSystems.getDefault().getSeparator(); a été introduite dans Java 7, il est donc préférable de l'ignorer pour l'instant si vous souhaitez que votre code soit portable sur les anciennes versions de Java.

Ainsi, chacune de ces options est presque identique aux autres, mais pas tout à fait. Choisissez celle qui correspond à vos besoins.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X