Archief - Java: wegschrijven naar tekstbestand probleem

Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.

Pieke

Legacy Member
Gegroet,

ik wil gegevens wegschrijven naar een tekstbestand. Helaas doet hij niet wat ik wil en vind ik geen oplossing.

Wegschrijven doet hij wel, alleen wat er reeds in het tekstbestand zat delete hij gewoon (en dat is uiteraard niet de bedoeling).

Ik zou het willen hebben dat hij laat staan wat er al staat, en een nieuwe regel toevoegt (in begin of einde, tekstbestand laatste regel moet wel zelfde blijven (***))

Code:
	try {
			BufferedWriter schrijf = new BufferedWriter(new FileWriter("Planningen.txt")) ;
			 
			schrijf.write(evnaam + "\t" + zaalnaam + "\t" + t) ;
			schrijf.close() ;
		}
		catch(IOException ex) {

dat was alles wat ik had, en als ik google dan vind ik niets extra (of ik google slecht dat kan ook :))

Tyfius

Legacy Member
Je opent die FileWriter() verkeerd. Om te 'appenden' moet je daar expliciet een boolean aan meegeven.

Code:
FileWriter("file.txt", true)

Pieke

Legacy Member
a vet thx

en hoe kan ik ervoor zorgen dat hij dat niet op de laatste regel zet (achter de ***) maar
een nieuwe regel er net boven tussenvoegd?

(of moet ik de laatste regel wegdoen en die herschrijven gewoon?)

Tyfius

Legacy Member
Pieke zei:
a vet thx

en hoe kan ik ervoor zorgen dat hij dat niet op de laatste regel zet (achter de ***) maar
een nieuwe regel er net boven tussenvoegd?

(of moet ik de laatste regel wegdoen en die herschrijven gewoon?)
Dat zal het meest eenvoudige zijn ja.

Pieke

Legacy Member
ik heb nog een ander probleem, nu met sorteren


tgaat om planningen (die bestaan uit zaalnaam, evenementnaam en dan 2 tijdsmomenten (gewoon dd/mm/yy/uur/min), die steken in een ArrayList en die moet kunnen worden gesorteerd volgens zaal/evenement/tijdsmoment (1vd3)


voor te sorteren per zaal had ik dit

Code:
public class PlanningContainer {

private ArrayList <Planning> planningen  = new ArrayList <Planning>()  ;

....

public ArrayList <Planning> getPlanningenGeordendPerZaal(String type) {
			PlanningZaalComparator z = new PlanningZaalComparator () ;
			return Collections.sort(planningen.clone(), z) ;
		}

class PlanningZaalComparator implements Comparator <Planning> {
	public int compare (Planning p1, Planning p2) {
		return p1.getZaalnaam().compareTo(p2.getZaalnaam()) ;
	}


en die geeft deze error.

The method sort(List<T>, Comparator<? super T>) in the type Collections is not applicable for the arguments (Object, PlanningContainer.PlanningZaalComparator)

killgore

Legacy Member
Code:
return Collections.sort(planningen.clone(), z) ;
veranderen naar
Code:
return Collections.sort((ArrayList<Planning>)planningen.clone(), z) ;

reden: Clone geeft algemeen een Object terug, geen ArrayList. Een andere (imho betere) manier om te kopiëren is deze:
Code:
return Collections.sort(new ArrayList<Planning>(planningen), z) ;
Deze maakt gebruik van copy constructor.

Pieke

Legacy Member
bij beide gevallen krijg ik de melding dat hij geen void result kan teruggeven :s
(Cannot return a void result)

maar de andere error is wel weg :)

forloRn_

Legacy Member
Collections.sort() geeft geen List terug, maar wijzigt de list die je meegeeft als parameter.

Code:
ArrayList<Planning> sortedList = new ArrayList<Planning>(planningen);
Collections.sort(sortedList, z);
return sortedList;

Pieke

Legacy Member
dacht al zoeits,
wrm ze dan tijdens de theorielessen foutieve dingen opschrijven/"aanleren" is mij een raadsel, maar thx :)

Jerre Muesli

Legacy Member
School toch hé :) Ze zouden u beter eerst de les "hoe lees ik API" geven :D
Niks belangrijkers..

Dus als ge links op de Class "Collections" klikt en dan scrollt naar de method "sort()" (één van de 2) dan zie je in de linker kolom het woord "void" staan. Dit wel zeggen dat het niets returnt.

Yngwie

Legacy Member
=[KO]=;10785302 zei:
KHL, patrick fox waarschijnlijk ?

just my guess, 2de jaar TI aan khleuven.

Al denk ik wel niet dat je daar 100% op u plaats zit als je op een forum hulp komt vragen omdat je de api niet kan/wil begrijpen.

Ik heb de volledige opdracht eens bekeken en het zijn enkel basic dingen die perfect in de api uitgelegd staan. als ik u één goede raad mag geven : probeer het adhv deze api op te lossen, chances are dat ge dit nog heel veel zult moeten doen als ge verdergaat in development
Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.
Terug
Bovenaan