separatorchar ejemplo java file path-separator

ejemplo - jseparator en java



File.separator o File.pathSeparator (3)

En la clase de File hay dos cadenas, separator y pathSeparator .

¿Cual es la diferencia? ¿Cuándo debo usar uno sobre el otro?


Si te refieres a File.separator y File.pathSeparator entonces:

  • File.pathSeparator se utiliza para separar rutas de archivos individuales en una lista de rutas de archivos. Considerar en windows, la variable de entorno PATH. Usted utiliza un ; para separar las rutas de archivos por lo que en Windows File.pathSeparator sería ; .

  • File.separator es / o / que se usa para dividir la ruta a un archivo específico. Por ejemplo, en Windows es / o C:/Documents/Test


Utiliza el separador cuando estás creando una ruta de archivo. Así que en unix el separador es / . Así que si quisieras construir la ruta /var/temp Unix lo harías así:

String path = File.separator + "var"+ File.separator + "temp"

Utiliza el pathSeparator cuando estás tratando con una lista de archivos como en un classpath. Por ejemplo, si su aplicación tomó una lista de /path/to/jar1.jar:/path/to/jar2.jar:/path/to/jar3.jar como argumento, la forma estándar de formatear esa lista en unix es: /path/to/jar1.jar:/path/to/jar2.jar:/path/to/jar3.jar

Así que dada una lista de archivos harías algo como esto:

String listOfFiles = ... String[] filePaths = listOfFiles.split(File.pathSeparator);


java.io.File clase java.io.File contiene cuatro variables separadoras estáticas. Para una mejor comprensión, entendamos con la ayuda de algún código.

  1. separador: el carácter separador de nombre predeterminado de la plataforma como cadena. Para Windows, es ''/' y para UNIX es ''/''.
  2. separatorChar: igual que separator pero es char
  3. pathSeparator: variable dependiente de la plataforma para path-separator. Por ejemplo, la lista de variables PATH o CLASSPATH de rutas separadas por '':'' en sistemas Unix y '';'' en el sistema de Windows
  4. pathSeparatorChar: igual que pathSeparator pero es char

Tenga en cuenta que todas estas son variables finales y dependientes del sistema.

Aquí está el programa java para imprimir estas variables separadoras. FileSeparator.java

import java.io.File; public class FileSeparator { public static void main(String[] args) { System.out.println("File.separator = "+File.separator); System.out.println("File.separatorChar = "+File.separatorChar); System.out.println("File.pathSeparator = "+File.pathSeparator); System.out.println("File.pathSeparatorChar = "+File.pathSeparatorChar); } }

Salida del programa anterior en el sistema Unix:

File.separator = / File.separatorChar = / File.pathSeparator = : File.pathSeparatorChar = :

Salida del programa en sistema Windows:

File.separator = / File.separatorChar = / File.pathSeparator = ; File.pathSeparatorChar = ;

Para que nuestra plataforma de programa sea independiente, siempre debemos usar estos separadores para crear una ruta de archivo o leer cualquier variable del sistema como PATH, CLASSPATH.

Aquí está el fragmento de código que muestra cómo usar los separadores correctamente.

//no platform independence, good for Unix systems File fileUnsafe = new File("tmp/abc.txt"); //platform independent and safe to use across Unix and Windows File fileSafe = new File("tmp"+File.separator+"abc.txt");