es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿Cómo leer/escribir un archivo con propiedades personalizadas en Java utilizando la clase Properties?

Soy capaz de leer/escribir en un archivo con la sintaxis estándar “clave=valor” utilizando la clase “java.util.Properties” con el siguiente código:

Properties properties = new Properties();
properties.load(new InputStreamReader(fileInputStream, Charset.forName("UTF-8")));

properties.setProperty(clave, valor);

Sin embargo, me gustaría leer/editar el archivo “user.js” del perfil de Firefox, que contiene una sintaxis de propiedades personalizadas:

PREFIX     CLAVE                            VALOR
user_pref("browser.tabs.warnOnClose", true);
user_pref("browser.tabs.warnOnCloseOtherTabs", true);
user_pref("browser.laterrun.bookkeeping.profileCreationTime", 1638899590);
user_pref("browser.laterrun.bookkeeping.sessionCount", 3);
user_pref("dom.push.userAgentID", "dd6709b4XXXXXX517f7bf9e78");

Observa que cada propiedad contiene un prefijo estándar (por ejemplo, “user_pref(“), una clave (por ejemplo, “browser.tabs.warnOnClose”) y un valor (por ejemplo, true, 1638899590, “dd6709b4XXXXXX517f7bf9e78”).

Supongo que esto se puede lograr con expresiones regulares (RegEx), pero preferiría resolverlo de una manera más sencilla si es posible.

¿Es posible lograr esto directamente con la clase “java.util.Properties” o debo utilizar expresiones regulares?

Gracias

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    Desafortunadamente, no es posible utilizar directamente la clase Java Properties para leer/editar el archivo user.js del perfil de Firefox ya que no sigue la sintaxis estándar clave=valor. Deberá utilizar RegEx para analizar el archivo y extraer los valores deseados.

    Sin embargo, utilizar bibliotecas existentes como mozilla/PropertiesParser o joemccrary/innertube puede simplificar este proceso y proporcionar un enfoque más estructurado para manejar las propiedades de user.js.

Comments are closed.