Hallo,
ich habe zwei Methoden geschrieben, einmal zum auslesen einer CSV Datei aus dem Internet, die anderen um alle doppelt vorkommenden Datensätze aus der CSV Datei zu entfernen und die CSV Datei neu zu schreiben.. Hier mal beide Methoden, funktionieren beide einwandfrei.
Jedoch will ich jetzt beide Methoden in einem Schritt abwickeln, sprich in einer Methode, jedoch funktioniert dann gar nichts mehr.. Hier mal der Code wenn ich meine Methoden zusammenfasse..
Grüße
ich habe zwei Methoden geschrieben, einmal zum auslesen einer CSV Datei aus dem Internet, die anderen um alle doppelt vorkommenden Datensätze aus der CSV Datei zu entfernen und die CSV Datei neu zu schreiben.. Hier mal beide Methoden, funktionieren beide einwandfrei.
Java:
public static void Lesen() {
String speicher = "";
BufferedWriter bw = null;
try
{
String eingabeurl = EingabeURL();
URL url = new URL(eingabeurl);
Reader einlesen = new InputStreamReader( url.openStream() );
BufferedReader in = new BufferedReader( einlesen );
String dateiausgabe = "Ausgabe.csv";
bw = new BufferedWriter(new FileWriter(dateiausgabe, true));
for ( String aktuellerDatensatz; ( aktuellerDatensatz = in.readLine() ) != null; ){
//Aktuellen Datensatz in CSV-Datei schreiben
bw.write(aktuellerDatensatz);
//Neue Zeile
bw.newLine();
}
//String schreiben
bw.write(speicher);
//Puffer leeren
bw.flush();
//BufferWriter schliessen
bw.close();
in.close();
}
catch ( MalformedURLException e ) {
System.out.println( "MalformedURLException: " + e );
}
catch ( IOException e ) {
System.out.println( "IOException: " + e );
}
}
Java:
public static void DoppelteDSloeschen() throws FileNotFoundException {
FileReader datei = null;
BufferedReader buff = null;
datei = new FileReader("Ausgabe.csv");
buff = new BufferedReader(datei);
Set<String> zeilen = new LinkedHashSet<>();
String speicher = "";
try {
String line;
while((line = buff.readLine()) != null) {
if(!zeilen.contains(line)) {
zeilen.add(line);}}
buff.close();
String dateiausgabe = "Ausgabe.csv";
for (String aktuellerDatensatz: zeilen ){
BufferedWriter bw = null;
bw = new BufferedWriter(new FileWriter(dateiausgabe, true));
bw.write(aktuellerDatensatz);
bw.newLine();
bw.write(speicher);
bw.flush();
bw.close();
}
} catch (IOException e) {
System.err.println("Fehler:" + e);
} finally {
try {
buff.close();
datei.close();
} catch (IOException e) {
System.err.println("Fehler:" + e);
}
}
}
Jedoch will ich jetzt beide Methoden in einem Schritt abwickeln, sprich in einer Methode, jedoch funktioniert dann gar nichts mehr.. Hier mal der Code wenn ich meine Methoden zusammenfasse..
Java:
public static void Zusammengefasst() throws FileNotFoundException {
String speicher = "";
BufferedWriter bw = null;
try
{
String eingabeurl = EingabeURL();
URL url = new URL(eingabeurl);
Reader einlesen = new InputStreamReader( url.openStream() );
BufferedReader in = new BufferedReader( einlesen );
String dateiausgabe = "Ausgabe.csv";
bw = new BufferedWriter(new FileWriter(dateiausgabe, true));
for ( String aktuellerDatensatz; ( aktuellerDatensatz = in.readLine() ) != null; ){
//Aktuellen Datensatz in CSV-Datei schreiben
bw.write(aktuellerDatensatz);
//Neue Zeile
bw.newLine();
}
//String schreiben
bw.write(speicher);
//Puffer leeren
bw.flush();
//BufferWriter schliessen
bw.close();
in.close();
}
catch ( MalformedURLException e ) {
System.out.println( "MalformedURLException: " + e );
}
catch ( IOException e ) {
System.out.println( "IOException: " + e );
}
FileReader datei = null;
BufferedReader buff = null;
datei = new FileReader("Ausgabe.csv");
buff = new BufferedReader(datei);
Set<String> zeilen = new LinkedHashSet<>();
speicher = "";
try {
String line;
while((line = buff.readLine()) != null) {
if(!zeilen.contains(line)) {
zeilen.add(line);}}
buff.close();
String dateiausgabe = "Ausgabe.csv";
for (String aktuellerDatensatz: zeilen ){
bw = null;
bw = new BufferedWriter(new FileWriter(dateiausgabe, true));
bw.write(aktuellerDatensatz);
bw.newLine();
bw.write(speicher);
bw.flush();
bw.close();
}
} catch (IOException e) {
System.err.println("Fehler:" + e);
} finally {
try {
buff.close();
datei.close();
} catch (IOException e) {
System.err.println("Fehler:" + e);
}
}
}
Grüße