dastool
Erfahrenes Mitglied
Guten Abend Java-Gemeinde,
ich hab mal wieder ( ) einen hänger.
Unser Dozent gab uns einen Code für das "einfache" Lesen und Schreiben von Dateien.
Was auch funktioniert.
Ich hab nun den Code für meine bedürnisse anpassen wollen.
Nun tritt dort das folgende Problem auf:
Die Datei, in die ich schriben möchte existiert, und heisst schlicht "artikel".
Sobald ich eine Eingabe machte, wird diese gerpüft etc. alles astrein und so, wie ich das möchte.
Nur die gespeicherte Eingabe ist nicht, wie im Test, das Wort "Test", sondern [Ljava.lang.String;@82ba41
Ob ihr nun den Code braucht, oder nicht ist relativ, ich häng ihn sicherheitshalber mal an (2 Klassen. Main und EasyZugriff).
Klasse Main.java:
Klasse EasyZugriff
Ich weiss, dass ich irgendwo einen kleinen Fehler drin hab, aber ich such mir hier seid Stunden nen Ast und komm auf keinen grünen Zweig .
Ich hoff, mindestens einer kann mir helfen
gruss
Martin
ich hab mal wieder ( ) einen hänger.
Unser Dozent gab uns einen Code für das "einfache" Lesen und Schreiben von Dateien.
Was auch funktioniert.
Ich hab nun den Code für meine bedürnisse anpassen wollen.
Nun tritt dort das folgende Problem auf:
Die Datei, in die ich schriben möchte existiert, und heisst schlicht "artikel".
Sobald ich eine Eingabe machte, wird diese gerpüft etc. alles astrein und so, wie ich das möchte.
Nur die gespeicherte Eingabe ist nicht, wie im Test, das Wort "Test", sondern [Ljava.lang.String;@82ba41
Ob ihr nun den Code braucht, oder nicht ist relativ, ich häng ihn sicherheitshalber mal an (2 Klassen. Main und EasyZugriff).
Klasse Main.java:
Code:
package EasyBuy;
import java.io.*;
import java.awt.Dimension;
public class Main {
public static void main(String[] args)
throws FileNotFoundException, IOException
{
EasyZugriff zugriff = new EasyZugriff();
BufferedReader inDatei = new BufferedReader(new InputStreamReader(System.in));
System.out.println("dateiname: ");
String sDatei = inDatei.readLine();
BufferedReader inEingabe = new BufferedReader(new InputStreamReader(System.in));
System.out.println("Eingabe machen: ");
String sEingabe = inEingabe.readLine();
zugriff.schreiben(sDatei, sEingabe);
String dlesen = zugriff.lesen(sDatei);
System.out.print(dlesen);
}
}
Klasse EasyZugriff
Code:
package EasyBuy;
import java.io.*;
import java.util.*;
public class EasyZugriff {
public void schreiben(String dateiname, String eingabe)
throws IOException, FileNotFoundException {
boolean b;
b = dateiInhaltPruefen(dateiname, eingabe);
if(b == false)// wort nicht in datei enthalten
{
eingabe = dateiInhaltBearbeiten(dateiname, eingabe);
PrintWriter out;
out = new PrintWriter(new FileWriter(dateiname));
out.print(eingabe);
out.close();
}
}
private boolean dateiInhaltPruefen(String dateiname, String eingabe) // Eingabe mit Inhalt vergleichen
throws IOException, FileNotFoundException {
boolean b = true;
String input = "";
input = dateiInhaltLesen(dateiname, eingabe);
b = dateiInhaltVergleichen(eingabe, input);
if( b == true) {
b = true; //wort in datei enthalten
} else {
b = false;//wort nicht in datei enthalten
}
return b;
}
private String dateInhaltSortieren(String eingabe, String input)
throws IOException, FileNotFoundException {
String[] strarray = new String[] { eingabe };
Arrays.sort(strarray);
eingabe = strarray.toString();
eingabe = eingabe.concat("\n"+input);
return eingabe;
}
private void dateiInhaltLoeschen(String dateiname)
throws IOException {
boolean a,b;
File f = new File(dateiname);
a = f.delete();
b = f.createNewFile();
}
private boolean dateiInhaltVergleichen(String eingabe, String input) {
boolean b;
if(!(eingabe.equals(input))) {
b = false;
} else {
b = true;
}
return b;
}
public static String dateiInhaltLesen(String dateiname, String eingabe)
throws FileNotFoundException, IOException {
BufferedReader in = new BufferedReader(new FileReader(dateiname));
String line, inputstr = "";
line = in.readLine();
while (line != null) {
inputstr = inputstr.concat(line+"\n");
line = in.readLine();
}
System.out.print(inputstr);
in.close();
return inputstr;
}
public String dateiInhaltBearbeiten(String dateiname, String eingabe)
throws IOException, FileNotFoundException {
String input = "";
input = dateiInhaltLesen(dateiname, eingabe);
dateiInhaltLoeschen(dateiname);
input = dateInhaltSortieren(eingabe, input);
return input;
}
public static String lesen(String dateiname)
throws FileNotFoundException, IOException
{
BufferedReader in = new BufferedReader(new FileReader(dateiname));
String line, inputstr = "";
line = in.readLine();
while (line != null)
{
inputstr = inputstr.concat(line+"\n");
line = in.readLine();
}
System.out.print(inputstr);
in.close();
return inputstr;
}
}
Ich weiss, dass ich irgendwo einen kleinen Fehler drin hab, aber ich such mir hier seid Stunden nen Ast und komm auf keinen grünen Zweig .
Ich hoff, mindestens einer kann mir helfen
gruss
Martin