Leer de fichero y escribirlo en pantalla

paco
14 de Febrero del 2006
Necesito leer un archivo que tiene varias lineas. Necesito para cada palabra poner un par de JCheckBox y para cada párrafo un par de JRadioButton.
A la hora de leer el fichero con:
BufferedReader br = new BufferedReader(new FileReader(filename));
puedo leer una linea del fichero de esta manera:
String str = br.readLine();
pero como puedo después dividirlo en palabras?
Yo había hecho lo siguiente:
String words[] = str.split(" ");
y después con un bucle for le ponía las JLabels para mostrar la palabra con las dos JCheckBox.
JLabel jlbl = new JLabel(words[i]);
jlbl.setVisible(true);
JCheckBox jcbx1 = new JCheckBox();
jcbx1.setVisible(true);
JCheckBox jcbx2 = new JCheckBox();
jcbx2.setVisible(true);
Bueno, la cosa es que no funciona...He empezado a programar en Java por obligación, y no llevo ni 3 semanas. A ver si me podeis ayudar...(No seais muy duros conmigo, que reconozco que soy un burro jeje)

dinokorn
14 de Febrero del 2006
Te recomuiendo utilizar stringTokenizer, es muy sencillo, tienes una cadena

donde recuperaste toda la información, y quieres separarla entonces:


String Datos....
String Separador=new String(\\\\\\\\\\\\\\\"|\\\\\\\\\\\\\\\"); //Por dar un ejemplo

StringTokenizer ST = new StringTokenizer(Datos,Separador);
int Tokens = ST.countTokens();

for(int i=0;i<Tokens;i++)
System.out.prinln(ST.nextToken());

Pero ten cuidado que los tokens se utilicen solo para separar y no sean

parte de la información

paco
14 de Febrero del 2006
Muchas gracias, ya lo había probado tal y como tu lo has puesto, jeje.
Ahora la cosa está en que he separado las palabras por espacios, pero también me gustaría detectar los cambios de párrafos. En mi fichero, cada linea es un párrafo. Podría anidar dos StringTokenizer sin problemas, verdad? un sería para StringTokenizer(datos," "); y el otro StringTokenizer(datos,"\n); no?
Lo que pasa es que al usar la primera sentencía, no diferencia los saltos de linea (he puesto en un while que me lea todo hasta que datos.readLine != null).
Alguna idea para poder detectar cuando me ha acabado la linea?

paco
14 de Febrero del 2006
comento mas cosas. Usando el método split, me salen una burrada de excepciones, concretamente 29...He leido algo sobre las clases StringTokenizer y StreamTokenizer, pero no sabría cual de ellas utilizar ni como hacerlo.
También decir que el fichero lo tengo que mostrar en un JFrame, yo había pensado en JLabels pero no sé si habrá algo mejor para mostrar cada palabra junto con sus checkbox.
Tampoco sé muy bien como saltar de linea. Podría hacer un método para hacerlo, pero seguro que tiene que haber alguna función que lea ficheros linea a linea, detectando cuando acabe cada linea, no?
A ver si me comentais algo. Gracias