Witam!
Chcę napisać generator plików .pdf, który będzie generował te pliki w następujący sposób: Dany jest plik testy.txt , w którym znajdują się pytania (zaczynające się od "1.[spacja]") wraz 4 odpowiedziami ("1a."). Losowo wybieram numer i odnajduję go w pliku testy.txt po czym zapisuje do .pdf, następnie w sposób losowy wybieram 4 odpowiedz (tu włąśnie jest problem). Napisałem coś takiego, ale źle generuje i zapisuje odpowiedzi do .pdf.
import java.awt.Color;
import java.io.*;
import java.util.ArrayList;
import java.util.Random;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import com.lowagie.text.Chunk;
import com.lowagie.text.Document;
import com.lowagie.text.DocumentException;
import com.lowagie.text.Font;
import com.lowagie.text.FontFactory;
import com.lowagie.text.Paragraph;
import com.lowagie.text.Phrase;
import com.lowagie.text.pdf.PdfWriter;
public class generuj
{
public static void main(String[] args)
{
// krok 1
Document document =new Document();
try
{
// krok 2
PdfWriter.getInstance(document,new FileOutputStream("HelloWorld.pdf"));
document.open();
String linia="";
String linia2="";
int liczba=0;
int ilePytan=3;
int ileOdpowiedzi=4;
int pom=0;
int pom2=0;
ArrayList <String> odp=new ArrayList();
odp.add("a");
odp.add("b");
odp.add("c");
odp.add("d");
ArrayList<String> linie =new ArrayList();
for(int i=0;i<ilePytan;i++)
{
ileOdpowiedzi=4;
odp.add("a");
odp.add("b");
odp.add("c");
odp.add("d");
Random r=new Random();
pom=r.nextInt(ilePytan)+1;
Pattern wzorzec=Pattern.compile(pom+". ");
FileReader fr = new FileReader("testy.txt");
FileReader fr2 = new FileReader("testy.txt");
BufferedReader bfr = new BufferedReader(fr);
BufferedReader bfr2 = new BufferedReader(fr2);
while((linia = bfr.readLine()) != null)
{
Matcher sekwencja=wzorzec.matcher(""+linia);
while(sekwencja.find())
{
document.add(new Phrase(""+linia+"\n",FontFactory.getFont(FontFactory.COURIER,
12,Font.NORMAL,new Color(0,0,0))));
}
}
for(int ii=0;ii<4;ii++)
{
Random o=new Random();
pom2=o.nextInt(ileOdpowiedzi);
Pattern odpo=Pattern.compile(pom+odp.get(pom2)+".");
while ((linia2=bfr2.readLine())!=null)
{
Matcher oo=odpo.matcher(""+linia2);
while(oo.find())
{
document.add(new Phrase(""+linia2+"\n",FontFactory.getFont(FontFactory.COURIER,
12,Font.NORMAL,new Color(0,0,0))));
break;
}
break;
}
ileOdpowiedzi--;
odp.remove(pom2);
}
}
}
catch(DocumentException de)
{
System.err.println(de.getMessage());
}
catch (IOException ioe)
{
System.err.println(ioe.getMessage());
}
// krok 5
document.close();
}
}