Archivo plano y java applet

He creado un programa en java applet que realiza el cálculo de unas expensas dependiendo de una ecuación. Esta ecuación tiene unos valores como por ejemplo el sueldo. Para este sueldo he declarado una variable global y al momento de hacer el cálculo llamo dicha variable y el programa se ejecuta a la perfección. Mi problema radica en que este sueldo después de cierto tiempo se modifica. Para no estar cada POR momento cambiando el valor de esta variable dentro del programa en java, he pensado declarar esta variable en un archivo plano (txt) y luego que el programa en java la lea y la utilice para el calculo en la ecuación. Creo que esto facilitaría las cosas ya que la persona que maneja esta aplicación cambiaría el valor de la variable de dicho archivo plano y no tendría nada que ver con el código. ¿Saben si es posible hacerlo y en tal caso como declaro la variable en el archivo plano? ¿Cómo hago para leer esta variable y utilizarla dentro del código de java?. O si conoce otra forma fácil de poder cambiar este valor de la variable pero sin tener que entrar a manipular el código del programa.

2 Respuestas

Respuesta
Para leer desde un archivo:
Tendrás que leerlo con un fileReader, este método "lee" linea a linea, que como solo vas a tener una variable, seria para tu caso, también esta InputStream que es para leer el fichero entero.
Siempre siempre se ha de cerrar el canal de lectura, por eso se pone en el finally.
import java.io.*;
class LeeFichero {
public static void main(String [] arg) {
File archivo = null;
FileReader fr = null;
try {
archivo = new File("C:\\archivo.txt");
String linea;
fr = new FileReader (archivo);
BufferedReader br = new BufferedReader(fr);
while((linea=br.readLine())!=null)
System.out.println(linea);
}catch(IOException e){
System.out.println(e);
}finally{
try{ 
if( fr != null){ 
fr.close(); 
}
}catch (IOException e){ 
System.out.println(e);
}
}
}
}
Respuesta
1
En un applet no se pueden manipular archivos, eso generaría una excepción de seguridad, Dices que la "variable sueldo" la cambiaría el usuario, te aconsejaría que crearas un TextField (o JTextField si usas swing) donde el usuario ingresaría el valor que debería tener.
Otra opción seria agregar un parámetro sueldo en la etiqueta applet de la página html y llamarla con el método getParameter().
O también, si quieres utilizar el archivo, seria que pasaras el applet a una aplicación autónoma, así podrías manipular archivos.
Piénsalo y me cuentas, para poderte brindar más información.
Suerte.
Muchísimas gracias experto por tu respuesta tan oportuna.
De acuerdo a lo planteado la segunda opción me parece la más viable, pero de todos modos no es muy clara para mi ya que no llevo mucho tiempo en esto. Estoy algo confundida me podrías dar una manito por fis... más información al respecto o un ejemplo... muchas gracias por toda tu ayuda
La diferencia entre un applet y una aplicación autónoma es mínima, de pronto las dos características más sobresalientes es que un applet es una aplicación java que corre en internet, y una aplicación autónoma es una aplicación de escritorio, como por ejemplo word, excel, mozilla firefox, el block de notas, ...
Un applet va a tener una estructura de la siguiente manera:
import java.awt.*;
Import java. Applet.*;//todo lo correspondiente a los applet
//al heredar de Applet, especificamos que es un applet
    public class HolaMundo extends Applet {
    Label label;
    public void init(){//en este metodo se inicializa el applet
        label=new Label("Hola Mundo");
        add(label);
    }
}
Los cambios que se deben tener al cambiar un applet a una aplicación autónoma son.
- El método init se cambia por el constructor
- La clase no hereda de Applet sino de Frame
- Se agrega un método main
La clase anterior, para "convertirla" en una aplicación autónoma seria :
import java.awt.*;
import java.awt.event.*;//para manejar eventos, el de cerrar la ventana
//el paquete java.applet.* ya no es necesario
//al heredar de Frame, creamos una aplicacion autonoma en una ventana
public class HolaMundo extends Frame {
    Label label;
//Todo lo que iba en el método init sedeja en el método constructor
public HolaMundo(){
        label=new Label("Hola Mundo");
        add(label);
    }
//el metodo main es el que verdaderamente inicializa la
//aplicacion ademas hay que especificar ciertos
//parametros extra
    public static void main(String args[]){
        //creamos una instancia de nuestra clase
        HolaMundo hola=new HolaMundo();
        //especificamos el tamaño de nuestra aplicacion
        hola.setSize(300,200);//en pixeles
        //especificamos como cerrar nuestra aplicacion
        //este metodo puede ser algo complejo, pero
        //si se entiende....
        hola.addWindowListener(new WindowAdapter(){
            public void windowClosing(windowEvent we){
                //salimos del programa
                System.exit(0);
            }
        });
        //opcional: mostrar un titulo en la ventana
        frame.setTitle("Mi primera aplicacion");
        //mostramos la ventana al usuario
        frame.setVisible(true);
    }
}
Puede que se vea algo enredado, pero en realidad son cosas que son tradicionales, obviamente al comienzo pueden parecer complejas, pero con la practica se vuelven mecánicas.
Espero te sirva si no entiendes algo no dudes en avisarme, ademas puedes pasarme tu dirección de correo, y te paso algunos manuales de java que tengo.
Suerte

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas