# WordCount Kirjoita ohjelma `WordCount`, joka kysyy käyttäjältä tiedoston nimeä ja tulostaa kyseisessä tiedostossa olevien rivien, sanojen ja merkkien määrän. Luettavan tiedoston on oltava Java-projektin juuressa. Esimerkiksi suorituksesta: ``` Anna tiedoston nimi: loremipsum.txt Tiedostossa on: 2 riviä 8 sanaa 55 merkkiä ``` Esimerkissä on käytetty tiedostoa `loremipsum.txt`: ``` Lorem ipsum dolor sit amet, consectetur adipiscing elit. ``` Riveksi lasketaan myös tyhjät rivit ja merkeiksi myös välilyönnit. Sanojen laskemiseksi voit käyttää String-luokan `split`-metodia, jolla pilkot kunkin rivin välilyöntien kohdalta. Huomaa kuitenkin, että tyhjällä rivillä ei saa laskea yhtään sanaa, vaikka `split`-metodi palauttaakin yhden pituisen taulukon. Voit hyödyntää omaa ohjelmaa testatessasi myös [tekstitiedosto.txt](https://gist.githubusercontent.com/swd1tn002/92d5a1082c978e2d0e90a082be1fca0b/raw/c5199dda06f2e34590301b1b711d4b157cc02c76/tekstitiedosto.txt)-tiedostoa. ``` Anna tiedoston nimi: loremipsum.txt Tiedostossa on: 2 riviä 8 sanaa 55 merkkiä ``` **WordCount.java** ``` import java.io.File; import java.io.FileReader; import java.io.IOException; import java.io.BufferedReader; import java.util.Arrays; import java.util.Scanner; public class WordCount { public static void main(String[] args) { Scanner syote = new Scanner(System.in); System.out.print("Anna tiedoston nimi: "); String tiedostoNimi = syote.next(); try { File tiedosto = new File(System.getProperty("user.dir"), tiedostoNimi); int i, rivit = 0, sanat = 0, merkit = 0; FileReader lukija = new FileReader(tiedosto); BufferedReader riviVirta = new BufferedReader(lukija); String nykyRivi = riviVirta.readLine(); while (nykyRivi != null) { // Laske rivit rivit++; if (!nykyRivi.isEmpty()) { // Laske sanat i = 0; while (i < Arrays.asList(nykyRivi.split(" ")).size()) { sanat++; i++; } // Laske merkit i = 0; while (i < Arrays.asList(nykyRivi.split("")).size()) { merkit++; i++; } } // Siirry seuraavaan riviin nykyRivi = riviVirta.readLine(); } lukija.close(); System.out.printf("Tiedostossa on:\n%d riviä\n%d sanaa\n%d merkkiä\n", rivit, sanat, merkit); } catch (IOException e) { System.err.printf("Tiedostoa %s ei löydy tai sen lukemisessa kävi virhe", tiedostoNimi); } } } ```