Java

Hola, espero me puedas ayudar con un programa(JAVA) que no e podido hacer funcionar adecuadamente.
El problema que tengo en el programa es el siguiente(El programa es un editor de texto):
-No e podido hacer que abra un archivo, ni que lo guarde apropiaamente.
-Espero lo puedas revisar, te lo agradesco.
-Gracias por tu tiempo.
import java.awt.*;
import java.awt.event.*;
import java.io.*;
public class editor implements ActionListener{
Frame f;
TextArea ta;
Menu m;
MenuBar mb;
MenuItem mi1,mi2,mi3,mi4;
FileDialog fd;
public editor(){
f=new Frame();
f.setSize(500, 250);
f.setLayout(new FlowLayout());
ta=new TextArea();
mb=new MenuBar();
m=new Menu("Archivo");
mi1=new MenuItem("Abrir");
mi1.addActionListener(this);
mi2=new MenuItem("Guardar");
mi2.addActionListener(this);
mi3=new MenuItem("Guardar Como");
mi3.addActionListener(this);
mi4=new MenuItem("Salir");
mi4.addActionListener(this);
m.add(mi1);
m.add(mi2);
m.add(mi3);
m.add(mi4);
mb.add(m);
f.setMenuBar(mb);
f.add(ta);
f.show();
f.addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent e){
try{
System.exit(0);
}
catch(Exception ex) {}
}
});
}
public void Salir(){
System.exit(0);
}
public void Abrir(){
String contenido="",temp;
try{
fd=new FileDialog(f,"Abrir",FileDialog.LOAD);
fd.show();
String nom=new String(fd.getDirectory()+fd.getFile());
FileInputStream fLeer=new FileInputStream(nom);
DataInputStream leer=new DataInputStream(fLeer);
while((temp=leer.readLine())!=null)
contenido+=temp+"\n";
ta.getText();
leer.close();
fLeer.close();
}
catch(IOException e){}
}
public void Guardar(){
try{
fd=new FileDialog(f,"Guardar",FileDialog.SAVE);
fd.show();
String nom=new String(fd.getDirectory()+fd.getFile());
FileOutputStream fe=new FileOutputStream(nom);
DataOutputStream esc=new DataOutputStream(fe);
esc.writeBytes(ta.getText());
esc.close();
fe.close();
}
catch(IOException e){}
}
public void GuardarComo(){
try{
fd=new FileDialog(f,"Guardar Como",FileDialog.SAVE);
fd.show();
String nom=new String(fd.getDirectory()+fd.getFile());
FileOutputStream fe=new FileOutputStream(nom);
DataOutputStream esc=new DataOutputStream(fe);
esc.writeBytes(ta.getText());
esc.close();
fe.close();
}
catch(IOException e){}
}
public void actionPerformed(ActionEvent e){
if(e.getActionCommand()=="Abrir")
Abrir();
else
if(e.getActionCommand()=="Guardar")
Guardar();
else
if(e.getActionCommand()=="Guardar Como")
GuardarComo();
else
if(e.getActionCommand()=="Salir")
Salir();
}
public static void main(String arg[]){
editor edit=new editor();
}
}

1 Respuesta

Respuesta
1
para guardar te aconsejo el siguiente codigo
try {
java.io.FileWriter fichero = new java.io.FileWriter(nom);
java.io.BufferedWriter bw = new java.io.BufferedWriter(fichero);
java.io.PrintWriter pw = new java.io.PrintWriter(bw);
pw.print(ta.getText());
pw.close();
}catch(java.io.IOException e){
JOptionPane. ShowMessageDialog(null, "Se produjo un error al guardar el fichero", "ATENCIÓN", JOptionPane.ERROR_MESSAGE);
}
En cuanto a leer
Sustituye FileInputStream por FileReader
Y DataInputStream por BufferedReader
¿Por qué utilizar estas clases y no las que pusiste tú? No lo recuerdo muy bien, pero se que así funciona
-Hice lo que dijiste pero sigue sin poder abrir documentos, espero me puedas asyudar(Te mando la funcion abrir ya modificada):
public void Abrir(){
String contenido="",temp;
try{
fd=new FileDialog(f,"Abrir",FileDialog.LOAD);
fd.show();
String nom=new String(fd.getDirectory()+fd.getFile());
FileReader fLeer=new FileReader(nom);
BufferedReader leer=new BufferedReader(fLeer);
while((temp=leer.readLine())!=null)
contenido+=temp+"\n";
ta.getText(contenido);
leer.close();
fLeer.close();
}
catch(IOException e){}
Solo encontré un fallo o eso creo pones lo siguiente
"ta.getText(contenido);"
no deberia ser
"ta.setText(contenido);"

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas