> Tak for det! Nu har jeg forsøgt at udvide den til at skulle læse indholdet
> fra en fil, men kan ikke helt få den til at skrive de rigtige sætninger til
> filen, tror det har noget at gøre med min return statement...
Hvor prøver du at skrive til en fil? Jeg kan kun se at du læser fra en
fil. Din readWord() metode vil altid returnere den tomme streng "", da
du jo nulstiller temp for hvert gennemløb af løkken. Hvad er meningen
med at readWord returnerer noget? Hvis det er fordi metoden skal
returnere en "formateret linie" ad gangen, så skal du ikke have hele din
while-løkke inden i metoden, men i stedet på klasse-niveau gemme status
over hvor langt du er nået, f.eks. ved at erklære din tokenizer på
klasseniveau. Hvis du derimod stadig blot vil have udskrevet det hele
til standard out (System.out.println), så lad readWord() returnere void.
Du skal forøvrigt være opmærksom på at hvis BufferedReader.ready()
returnerer false, betyder det ikke at filen er slut, men at den ikke er
klar til at blive læst - f.eks. er filsystemet ikke "færdig med at åbne
den", altså kan der være lidt ventetid på en read(), men i dit tilfælde
vil jeg tro at det er lige meget. For at finde ud af om der er flere
linier i filen, bør du læse en linie med readLine() og kontrollere om
resultatet er null (se forøvrigt API'en).
Mvh. Kasper
>
> -------------------------------------
> import java.io.*;
> import java.util.*;
>
> public class PrettyPrint {
>
> private BufferedReader infile;
> private String name;
>
> public PrettyPrint(String file_name){
>
>
> try{ infile = new BufferedReader(new FileReader(file_name));}
> catch (Exception e)
> {System.out.println("No such file");
> throw new RuntimeException("No such file2");
> }
> }
>
>
>
> public String readWord()throws IOException{
>
> String temp = "";
>
> if (infile.ready())
> {String line = infile.readLine().trim();
> StringTokenizer k = new StringTokenizer(line);
>
> int i = 0;
>
> while(i<= k.countTokens())
> {
>
> while(temp.length()<= 10)
> {String first_line = k.nextToken();
> temp = temp + first_line + " ";
>
>
> }
> System.out.println(temp.trim());
> i++;
> temp = "";
>
> }
> }
> return temp;
> }
>
>
--
Besøg mig på nettet:
http://www.kaspershjemmeside.dk