Strumienie tekstowe (BufferedReader)

0

Witam!
Napisałem metodę do liczenia ilości literek w pliku .txt:

    public static void licz(File f)throws IOException{
        ArrayList<Abs> al = new ArrayList<>();
        char znak = 'a';
        while(znak<='z'){
            int count=0;
            String linia;
            BufferedReader br = new BufferedReader(new FileReader(f));
            while((linia=br.readLine())!=null){
                for(int i=0; i<linia.length(); i++){
                    if(linia.charAt(i)==znak)count++;
                }
            }
            Abs obj = new Abs(znak,count);
            al.add(obj);
            znak++;
        }

Wszystko działa, ale zastanawiam się czy można w jakiś łatwy sposób przywracać pointer strumienia na początek pliku, bo ja zamiast robić coś takiego to po prostu z każdą iteracją pętli odpowiedzialną za zmianę znaku od nowa tworze strumien BufferedReader

 BufferedReader br = new BufferedReader(new FileReader(f));
1

Operacje I/O na plikach są najdłuższe, więc to co robisz jest totalnie nieoptymalne. Powinieneś iśc po pliku i się nie cofować, możesz użyc HashMapy albo zwykłej tablicy...

1 użytkowników online, w tym zalogowanych: 0, gości: 1