Zapis do pliku bez utraty poprzednich danych

0

Witam stworzyłem sobie taki kod:
[code]
import java.io.FileNotFoundException;
import java.io.PrintWriter;

public class Zapis{

private static int id;
private static String imie;
public Zapis(int id1, String imie2)
{
id=id1;
imie=imie2;
}
public static void dodaj(Zapis s) throws FileNotFoundException
{
System.out.print("blabla");
s.id=1;
s.imie="jacek";
PrintWriter zapis = new PrintWriter("test.txt");

zapis.println(s.id);
zapis.println(s.imie);
 zapis.close();

}

public static void main(String[] args) throws FileNotFoundException {

  Zapis t = new Zapis(id,imie);
  t.dodaj(t);

}
}

[/code]
i kiedy robię zapis do pliku to nowe dane się wpisują ale kasują się stare, myślałem o tym czy najpierw zrobić odczyt i zapisać odczytane dane + nowe dane ,ale nie wiem czy jest to dobre rozwiązanie dlatego pytam czy jest inna opcja?

1

PrintWriter moze wzial jako parametr Writera; mozesz otworzyc wlasnego FileWritera ktory z kolei bierze parametr append... Czytac dokumentacje.

0

Dobra dzięki poradziłem sobie, daje kod jakby ktos potrzebował ;)
Klasa FileUtil:
[code]
import java.io.FileWriter;
import java.io.IOException;
import java.io.PrintWriter;

public class FileUtil {

public void writeLinesToFile(String filename,int[] id,
String[] linesToWrite,
boolean appendToFile) {

PrintWriter pw = null;

try {

  if (appendToFile) {

    //If the file already exists, start writing at the end of it.
    pw = new PrintWriter(new FileWriter(filename, true));

  }
  else {

    pw = new PrintWriter(new FileWriter(filename));
    //this is equal to:
    //pw = new PrintWriter(new FileWriter(filename, false));

  }


  for (int i= 0; i < id.length; i++) {

      pw.println(id[i]);

    }
  for (int i = 0; i < linesToWrite.length; i++) {

      pw.println(linesToWrite[i]);

    }

  pw.flush();

}
catch (IOException e) {
  e.printStackTrace();
}
finally {
  
  //Close the PrintWriter
  if (pw != null)
    pw.close();
  
}

}

public static void main(String[] args) {

}
}
[/code]

Klasa Zapis
[code]
import java.io.FileNotFoundException;
import java.io.PrintWriter;

public class Zapis{

private static int id;
private static String imie;
public Zapis(int id1, String imie2)
{
id=id1;
imie=imie2;
}
public static void dodaj(Zapis s)
{
System.out.print("blabla");
s.id=99;
s.imie="jacek5";

FileUtil util = new FileUtil();
util.writeLinesToFile("test.txt",new int[] {s.id},new String[] {s.imie}, true);

}

public static void main(String[] args) {

  Zapis t = new Zapis(id,imie);
  t.dodaj(t);

}
}

[/code]

1 użytkowników online, w tym zalogowanych: 0, gości: 1