Hi,
ich versuche momentan einen rudimentären Texteditor zu programmieren. Er soll Dateien öffnen und speichern können.
Dabei soll es die beiden typischen Speicher-Funktionen (Speichern [im gleichen Pfad] und Speichern unter [im neuen Pfad]) geben.
Die Öffnen-Methode und Speicherunter-Methode funktionieren soweit:
Mein Problem ist, dass ich nicht weiß wie ich in einer weiteren Methode Save() auf die Variable path aus Open() (Zeile3) zugreifen kann.
wie man sieht ist hier noch das Problem, dass ich keine Möglichkeit gefunden habe die Anzahl der Zeilen vorm schrittweisen Auslesen zu ermitteln.. Für Vorschläge das zu verbessern wäre ich dankbar
So sieht die Speichern-Unter-Methode aus:
Gerade erst mit OOP angefangen, vorher nur PHP programmiert, also habt Nachsicht mit mir
ich versuche momentan einen rudimentären Texteditor zu programmieren. Er soll Dateien öffnen und speichern können.
Dabei soll es die beiden typischen Speicher-Funktionen (Speichern [im gleichen Pfad] und Speichern unter [im neuen Pfad]) geben.
Die Öffnen-Methode und Speicherunter-Methode funktionieren soweit:
Mein Problem ist, dass ich nicht weiß wie ich in einer weiteren Methode Save() auf die Variable path aus Open() (Zeile3) zugreifen kann.
Code:
public void Open() throws FileNotFoundException {
try {
String path = Pfad.getPath();
int length = 0;
int counter = 0;
BufferedReader countReader = null;
BufferedReader printReader = null;
String LineContents;
JOptionPane.showMessageDialog(null, path);
countReader = new BufferedReader(new FileReader(path));
printReader = new BufferedReader(new FileReader(path));
while ((LineContents = countReader.readLine()) != null) {
length++;
}
String[] text = new String[length];
// Problem ist momentan, dass leider dass das Array mit einer festen Länge erzeugt werden muss
// daher ist es nötig die Anzahl der Zeilen zu ermitteln, und das bevor das Array verwendet wird
// deshalb muss ich die Zeilen zweimal auslesen, beim ersten mal wegen der Anzahl, beim zweiten Mal um
// sie in ins Array zu schreiben und dann auszugeben
while ((LineContents = printReader.readLine()) != null) {
//JOptionPane.showMessageDialog(null, LineContents);
if (counter != 0) {
text[counter] = text[counter-1] + "\n" + LineContents;
} else {
text[counter] = LineContents;
}
jTextPane1.setText(text[counter]);
counter++;
}
} catch (IOException ex) {
Logger.getLogger(EditorView.class.getName()).log(Level.SEVERE, null, ex); // generiert
JOptionPane.showMessageDialog(null, "Die Datei existiert nicht!");
}
}
wie man sieht ist hier noch das Problem, dass ich keine Möglichkeit gefunden habe die Anzahl der Zeilen vorm schrittweisen Auslesen zu ermitteln.. Für Vorschläge das zu verbessern wäre ich dankbar
So sieht die Speichern-Unter-Methode aus:
Code:
public void SaveUnder() throws IOException {
String pfad_saveunder = JOptionPane.showInputDialog("Bitte geben Sie den vollständigen Ziel-Pfad an:");
File targetfile = new File(pfad_saveunder);
if (targetfile.exists()) { //falls die Datei existiert, fragen ob sie überschrieben werden soll:
int confirm = JOptionPane.showConfirmDialog(null, "Wollen sie die existierende Datei überschreiben?", "Speichern", 0);
if (confirm==0){ //falls ja, überschreiben:
FileWriter fWriter = new FileWriter(pfad_saveunder);
fWriter.write(this.jTextPane1.getText());
fWriter.close();
JOptionPane.showMessageDialog(null, "Erfolgreich überschrieben!");
}
else { //ansonsten nicht speichern und dies ausgeben:
JOptionPane.showMessageDialog(null, "Datei nicht gespeichert!");
}
}
else { //falls die Datei nicht existiert, speichern:
FileWriter fWriter = new FileWriter(pfad_saveunder);
fWriter.write(this.jTextPane1.getText());
fWriter.close();
JOptionPane.showMessageDialog(null, "Erfolgreich gespeichert!");
}
}
Gerade erst mit OOP angefangen, vorher nur PHP programmiert, also habt Nachsicht mit mir