Buenas tardes a todos, estoy haciendo un programa Java y tengo un archivo de configuración donde incremento 2 contadores que me hacen falta para la aplicación, os pongo la clase:
Código Java:
Ver originalimport org.apache.commons.configuration.ConfigurationException;
import org.apache.commons.configuration.HierarchicalINIConfiguration;
public class GrabadoFicheros{
public HierarchicalINIConfiguration ficheroIncrementos;
public GrabadoFicheros(){
try {
ficheroIncrementos = new HierarchicalINIConfiguration("D:\\incrementos.cfg");
System.
out.
println(e.
toString()); }
}
public synchronized void setContadorA(int valor){
try{
ficheroIncrementos.getSection("incrementos").setProperty("contadorA", valor);
ficheroIncrementos.save();
System.
out.
println(e.
toString()); }
}
public synchronized void setContadorB(int valor){
try{
ficheroIncrementos.getSection("incrementos").setProperty("contadorB", valor);
ficheroIncrementos.save();
System.
out.
println(e.
toString()); }
}
}
Y el contenido del archivo incrementos.cfg:
Código .CFG:
Ver original[incrementos]
contadorA = 1
contadorB = 2
Pues resulta que a veces cuando invoco al método
setContadorA para que modifique el valor de la variable
contadorA no lo hace.
Supóngase que la variable
contadorA del archivo
incrementos.cfg tiene el valor 1, pues cuando invoco al método y hago
setContadorA(5) no modifica el valor por 5. No salta ninguna excepción, todo OK,
pero no cambia el valor. ¿Por qué no cambia el valor? ¿Cómo podría saber si el archivo está siendo usado por otro método? ¿Cómo podría saber si el archivo está bloqueado en el momento que hago setContadorA(5)?
Muchas gracias de antemano.
Saludos.