Herlezen van BufferedReader

Status
Niet open voor verdere reacties.

Tantie

Gebruiker
Lid geworden
3 nov 2008
Berichten
15
Hoe kan ik de buffered reader laten herlezen?
Ik wil bepalen hoe de regelnummers eruit zien: namelijk
kleiner dan 99 regels dan 01,02,...
kleiner dan 999 regels dan 001,002,003,...
enz.
Maar daardoor moet ik eerst inlezen hoeveel regels ik heb en pas daarna kan ik format toe passen. Maar ik kan de reader niet laten herlezen, en een nieuwe reader aanmaken kan niet echt de bedoeling zijn?

Hier post ik mijn code:

Code:
else if (hulpB.equals(btnKopieer))
				{
					hulpS = "Men gaat de gegevens van Lees-gedeelte kopiëren naar Schrijf-Gedeelte [J3GLDemo02.191214A]";
					JOptionPane.showMessageDialog(null, hulpS);
					hulpS = "Wil men Regelnummers toevoegen?";
					int antw= JOptionPane.showConfirmDialog(null, hulpS, "Opgelet", 
							JOptionPane.YES_NO_OPTION);
						if (antw == JOptionPane.YES_OPTION)
						{
							int teller = 0;
							String TellerWaarde = "";
							int AantalDecimalen = 0;
							
							txaSchrijven.setText("");							
							// cfr. http://www.java-samples.com/showtutorial.php?tutorialid=395
							BufferedReader br = new BufferedReader(new FileReader(leesPad));
							while ((leesString = br.readLine()) != null)
							{
								++teller;
							}//einde while-lus
							hulpS = ("Bestand bevat: " + teller + " lijn(en)");

							TellerWaarde = Integer.toString(teller);
							AantalDecimalen = TellerWaarde.length();
							while ((leesString = br.readLine()) != null)
							{
								++teller;
								String Regelnummer = String.format("%0"+ AantalDecimalen +"d", teller);
								txaSchrijven.setText(txaSchrijven.getText() + "\n" + Regelnummer + "\t" + leesString);
							}//einde while-lus
							br.close();
							hulpS = "Bestand is gekopieerd MET regelnummers!!!";
							lblStatusBar.setText(hulpS);
							schrijfLog(hulpS);
						}
						else
						{
							//Kopiëren van de TekstArea van Lezen naar Schrijven							
							txaSchrijven.setText(txaLezen.getText());
							hulpS = "Bestand is gekopieerd ZONDER regelnummers!!!";
							lblStatusBar.setText(hulpS);
							schrijfLog(hulpS);
						}
				}
 
Een buffered reader kan je niet reseten.
Als je de file klein is kan je een hele grote buffer aanlaten maken. Beginnen met "Mark(int buffersize)" en later met reset terug springen naar je gemarkeerde plaats in de file. Dit mark/reset reset nml de bufferpointer en niet de filepointer...

Maar ik zal gewoon en nieuwe bufferredReader aanmaken.. of eventueel overstappen naar RandomAccessFile() klas.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan