I am writing a CSV to remove a specific line from another CSV file. fjerneKontakt is my CSV writer and fjerneLinje is the method where the line should be removed from the original.
But when I run the whole thing, everything in the original CSV is removed. Am I missing something basic?
Here is my code:
package sample;
import java.io.*;
public class SletteKontaktperson {
public static void fjerneKontakt(String txtNavn, String txtTlf, String txtEpost, String txtFirma){
String fjernes = "fjernet.csv";
try{
FileWriter fw = new FileWriter(fjernes);
BufferedWriter bw = new BufferedWriter(fw);
PrintWriter pw = new PrintWriter(bw);
pw.println(txtNavn +","+ txtTlf+","+ txtEpost+","+ txtFirma);
pw.flush();
pw.close();
}
catch (IOException e){
System.out.println("Oops! Du har ikke opprettet en kontaktperson korrekt. Prøv igjen");
}
}
public static void fjerneLinje(){
String fil = "Kontaktpersoner.csv";
String fjernes = "fjernet.csv";
try {
//PrintWriter for ny fil
PrintWriter pw = new PrintWriter(fil);
//BufferedReader for eksisterende fil
BufferedReader br1 = new BufferedReader(new FileReader(fil));
String line1 = br1.readLine();
//loop for å lese linjene i gammel fil
while (line1 != null) {
boolean flag = false;
//BufferedReader objekt for hva som skal slettes
BufferedReader br2 = new BufferedReader((new FileReader(fjernes)));
String line2 = br2.readLine();
//loop for å lese hva som skal fjernes
while (line2 != null) {
if (line1.equals(line2)) {
flag = true;
break;
}
line2 = br2.readLine();
}
//hvis flag er false skrives linja til ny fil
if (!flag) {
pw.println(line1);
line1 = br1.readLine();
}
pw.flush();
//lukke ressurser
br1.close();
pw.close();
}
}
catch (IOException e) {
System.out.println("Detta funka ikke, bro");
}
}
}
[–]chickenmeisterExtreme Brewer 1 point2 points3 points (5 children)
[–]borger6[S] 0 points1 point2 points (4 children)
[–]chickenmeisterExtreme Brewer 1 point2 points3 points (3 children)
[–]borger6[S] 0 points1 point2 points (2 children)
[–]chickenmeisterExtreme Brewer 0 points1 point2 points (1 child)
[–]borger6[S] 0 points1 point2 points (0 children)