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.