Serienbrief für Kunden aus einer ArrayList ?

Status
Nicht offen für weitere Antworten.

Java - Noob

Mitglied
Hi @ all,

ich hab da mal ne Frage, ich hab ne ArrayList wo Kunden mit ihren Daten drinne stehen.
Und nun will ich Serienbriefe an diese Kunden schreiben.
Hat da jemand ne Idee wie ich das machen kann??

Danke schon mal
 
Java ist zwar mächtig, aber es kann keine briefumschläge kaufen, kein papier falten, keine briefmarken anlecken und auf den briefumschalg kleben, und auch keine briefe zum briefkasten tragen...


... oder was willst du machen?
 
Ich hab ne Textdatei, wo der Brief drinne steht und für die Name,Anschrift etc. hab ich Platzhalter und nun will ich das diese Platzhalter durch die Namen etc von den Kunden aus der Liste ersetzt werden.
 
Irgendwie so???

Code:
		ArrayList list = ....;				
		File file = new File("<orgnialbrief>");
		StringBuffer briefbuffer = new StringBuffer(file.size());
		FileWriter out;
		BufferedReader in = new BufferedReader(new FileReader(file));
		for (String buffer;(buffer = in.readLine()) != null;briefbuffer.append(buffer + "\n"));
		in.close();				
		for (int n=0;n<list.size();n++) {
			out = new FileWriter("Serirenbrief_nr_" + String.valueOf(n));
			out.write(briefbuffer.toString().replaceAll("<platzhalter>", (String) list.get(n)));
			out.close();
		
		}
 
Jo, Danke! Is so in der Art genau dass was ich suche!
Habe den Code mal ein wenig modifiziert, es funzt aber noch nicht.
Habe einen Fehler mit dem ich Wahnsinnig werde !!!! :autsch:

Hoffentlich kann mir nochmal jemand helfen:

Arbeite mit eclipse. Das Prog verlangt in Zeile 15 hinter ..new FileReader(file)); eine geschweifte Klammer!

Warum????

Code:
public class Serienbrief 
{
	private ArrayList BriefKundeArray;
	
	public Serienbrief( ArrayList a) {                             // Klonen des Arrays
	       BriefKundeArray = a;
	    }
	
	File file = new File("Z:/Brief.txt");
	StringBuffer briefbuffer = new StringBuffer((int) file.length()); 
	FileWriter out;
	boolean laden = file.canRead();
	
	BufferedReader in = new BufferedReader(new FileReader(file));{

	try {
		for (String buffer; (buffer = in.readLine()) != null; briefbuffer.append(buffer + "\n"))
			try {
				in.close();
			} catch (IOException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
	} catch (IOException e) {
		// TODO Auto-generated catch block
		e.printStackTrace();
	}
		for (int n=0;n<BriefKundeArray.size();n++) { 
			try {
				out = new FileWriter("Serienbrief_nr_" + String.valueOf(n));
			} catch (IOException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			} 
			try {
				out.write(briefbuffer.toString().replaceAll("#", (String) BriefKundeArray.get(n)));
			} catch (IOException e1) {
				// TODO Auto-generated catch block
				e1.printStackTrace();
			} 
			try {
				out.close();
			} catch (IOException e2) {
				// TODO Auto-generated catch block
				e2.printStackTrace();
			} 
		}
	
		
	}
}
 
Dieser try-catch Block ist einfach so in der Klasse, nicht in einer Methode oder einem Kontruktor. Eclipse denkt wohl, du wolltest eine Methode machen, und hast ein { verloren...

Code:
	private ArrayList BriefKundeArray;
	
	public Serienbrief( ArrayList a) {                             // Klonen des Arrays
	       BriefKundeArray = a;
	    }  // ############# ist dieses { vielleicht zuviel ???
	
	File file = new File("Z:/Brief.txt");
	StringBuffer briefbuffer = new StringBuffer((int) file.length()); 
	FileWriter out;
	boolean laden = file.canRead();
	
	BufferedReader in = new BufferedReader(new FileReader(file));{

	try {
 
Vielen Dank! Das könnte es gewesen sein! Habe aber jetzt ein neues Prob:
eclipse verlangt eine FileNotFoundException für new FileReader(file) Zeile 14
Wenn ich das Prob so löse, ist der Fehler zwar hier behoben, zieht sich dann aber durch andere Dateien weiter.
Gibts eine andere Lösung? DANKE!!!

Code:
public class Serienbrief 
{
	private ArrayList BriefKundeArray;
	
	public Serienbrief( ArrayList a) throws FileNotFoundException {                             // Klonen des Arrays
	       
		BriefKundeArray = a;
	    
		File file = new File("Z:/Brief.txt");
		StringBuffer briefbuffer = new StringBuffer((int) file.length()); 
		FileWriter out = null;
		boolean laden = file.canRead();
				
		BufferedReader in = new BufferedReader(new FileReader(file));
                                ....
 
Benutz ein try-catch Block:

Code:
public void blabla(){
  try{
    // etwas sehr gefährliches
  }
  catch( Exception blupp ){
    blupp.printStackTrace();
  }
}
 
Oder, wenn dus explizit abfangen willst
Code:
public void blabla(){
  try{
    // etwas sehr gefährliches
  }
  catch( FileNotFoundException fe){
    fe.printStackTrace();
  } catch (IOException ioe) {
    ioe.printStackTrace();

}
}
 
Status
Nicht offen für weitere Antworten.

Zurück
Oben