In datei anhängen.

Padawan

Erfahrenes Mitglied
Hallo Leute,

ich hab folgenden Code geschrieben:

Java:
package pr1.a06;

import java.io.*;
import java.util.*;

import personen.*;


public class Personen {
	public static void main(String[] args) {
		
		//printTestpersonen();
		
		Person[] p = Person.getTestPersons();
		
		for(int i=0; i< p.length; i++){
			System.out.println((i+1) +""+p[i]);
			
		}
	
		//Aufgabe b
		Collection<Person> Sportfreunde=new HashSet<Person>();
		Collection<Person> Kommilitonen=new HashSet<Person>();
		Collection<Person> Verwandte=new HashSet<Person>();
		
		getPersons(Sportfreunde, Verwandte, Kommilitonen);
		

		
	}
	
	/*Aufgabe a) Erzeugt die jeweiligen listen für die Personengruppen*/
	public static void getPersons(Collection<Person> Sportfreunde, Collection<Person> Verwandte, Collection<Person> Kommilitonen) {
		Person[] Personen = Person.getTestPersons();
		
		for(int i=0; i<17; i++){
			if(i<10) Sportfreunde.add(Personen[i]);
			if(i>6) Verwandte.add(Personen[i]);
			if(i<15 && i>4) Kommilitonen.add(Personen[i]);
		}
		
		//Aufgabe c
		printPersons(Sportfreunde, new PrintWriter(System.out, true));
		printPersons(Kommilitonen,  new PrintWriter(System.out, true));
		printPersons(Verwandte, new PrintWriter(System.out, true));
		
		printPersons(Sportfreunde, ".\\listen\\all-complex-lists.txt");
		printPersons(Kommilitonen, ".\\listen\\all-complex-lists.txt");
		printPersons(Verwandte, ".\\listen\\all-complex-lists.txt");
	
		/*printList("Sportfreunde", Sportfreunde);
		printList("Verwandte", Verwandte);
		printList("Kommilitionen", Kommilitonen);*/
	}
	

/*	public static void printList(String identifier, Collection<Person> Col){
		
		String format ="\nPersongruppe: %s\n\tAnzahl:%d\n\tListe:\n";
		
		System.out.printf(format, identifier, Col.size());

		for(Person pers: Col){
			System.out.println("\t\t" + pers);
		}
	}*/
	
	
	/* Aufgabe C */
	public static void printPersons(Collection<Person> c, PrintWriter out){
		
		out.printf("\nPersongruppe: %s\n\tAnzahl:%d\n\tListe:\n", c.iterator(), c.size());
		out.flush();
		out.println();
		
		for(Person pers: c){
			out.println("\t\t" + pers +"\n");
			out.flush();
		}
		out.close();
	}
	
	
	
	public static void printPersons(Collection<Person> c, String filename){
		PrintWriter fout;
		
		try {
			fout = new PrintWriter(new File(filename));
			fout.printf("\nPersongruppe: %s\n\tAnzahl:%d\n\tListe:\n",c.getClass(), c.size());
			fout.flush();
			fout.println();
			
			for(Person pers: c){
				fout.printf("\t\t" + pers +"\n");
				fout.flush();
			}
			
			
		} catch (FileNotFoundException e) {
			e.printStackTrace();
		}
		fout.close();
	}
	
}

Die Sache ist die, dass ich z.B. in der Funktion printPersons() mit PrintWriter, den Inhalt von Collection in eine Datei schreibe. Es überschreibt jedoch, was schon vorhanden ist, was es eigl nicht tun soll.
Kann mir da jemand vllt. helfen?


Grüße Padawan
 
In der Methode printPersons(Collection, String) setzt du nicht das append-Flag vom PrintWriter, daher wird die Datei dann überschrieben.
 
Zurück