Saltar al contenido

Barra invertida de propiedades de Java

Tenemos la respuesta a este rompecabezas, al menos eso deseamos. Si sigues con preguntas dínoslo y con placer te ayudaremos

Solución:

Es Properties.load() lo que está causando el problema que está viendo, ya que la barra invertida se usa para un propósito especial.

La línea lógica que contiene todos los datos de un key-El par de elementos se puede distribuir en varias líneas naturales adyacentes escapando de la secuencia del terminador de línea con un carácter de barra invertida, .

Si no puede usar la sugerencia de CoolBeans, lo que puede hacer es leer el archivo de propiedades de antemano a un string y reemplace la barra invertida con doble barra invertida y luego aliméntelo a Properties.load()

String propertyFileContents = readPropertyFileContents();

Properties properties = new Properties();
properties.load(new StringReader(propertyFileContents.replace("\", "\\")));

Usar barras invertidas dobles c:\sdjf\slkdfj.jpg

Properties props = new Properties();
props.setProperty("test", "C:\dev\sdk\test.dat");
System.out.println(props.getProperty("test"));    // prints C:devsdktest.dat

ACTUALIZAR Crédito a @ehh debajo. Aparentemente, Windows reconoce las barras diagonales frontales. Entonces, supongo que puede hacer que sus usuarios lo escriban con barras diagonales frontales y, si necesita barras diagonales inversas después, puede reemplazarlo. Probé este fragmento a continuación y funciona bien.

Properties props = new Properties();
props.setProperty("test", "C:/dev/sdk/test.dat");
System.out.println(props.getProperty("test"));   // prints C:/dev/sdk/test.dat

Utilizar hacia adelante barras En Java nunca es necesario usar una barra invertida en un nombre de archivo.

Comentarios y calificaciones

Eres capaz de añadir valor a nuestra información aportando tu veteranía en los informes.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *