¿Cuándo debo usar File.separator y cuándo File.pathSeparator?

Resuelto icnhzabot asked hace 13 años • 0 respuestas

En la Fileclase hay dos cadenas separatory pathSeparator.

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

icnhzabot avatar May 12 '11 07:05 icnhzabot
Aceptado

Si te refieres File.separatora y File.pathSeparatorluego:

  • File.pathSeparatorse utiliza para separar rutas de archivos individuales en una lista de rutas de archivos. Considere en Windows la variable de entorno PATH. Se utiliza a ;para separar las rutas de los archivos, por lo que en Windows File.pathSeparatorsería ;.

  • File.separatores /o \que se utiliza para dividir la ruta a un archivo específico. Por ejemplo en Windows es \oC:\Documents\Test

user489041 avatar May 12 '2011 00:05 user489041

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

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

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

Aquí está el programa java para imprimir estas variables separadoras. Separadordearchivos.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 el sistema Windows:

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

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

Aquí está el fragmento de código que muestra cómo utilizar 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");
foxt7ot avatar Jan 03 '2015 07:01 foxt7ot