Q:

Regular Expressions and new lines

I am trying to divide a random file.txt into String[]. The text comes from Gutenberg.org and has lots of new lines. 
Example: 

The Project Gutenberg EBook of Lincoln Letters, by Abraham Lincoln
This eBook is for the use of anyone anywhere at no cost and with
  almost no restrictions whatsoever.  You may copy it, give it away or
  re-use it under the terms of the Project Gutenberg License included
  with this eBook or online at www.gutenberg.org
Title: Lincoln Letters

The output is correct for every word but not for the words which ends paragraphs and begins paragraphs.
For instance, "Lincolnhis" which is combination of "Lincoln" and "This" but is treated as one word. Instead, I would like to have "Lincoln" and "This".
token = word.split("\\s|\\.|\\,"); This is the regex I am using to divide the text file. Please help.
Here is the code I am using to input the text file:
    FileReader fr = new FileReader("C:\\Users\\Petr Holoubek\\Desktop\\hello world.txt");
    BufferedReader br = new BufferedReader(fr); 

    String[] tokens;
    String temp;
    int i;

    i = 0;
    temp = "";
    while((i=br.read()) != -1) {
        temp = temp + br.readLine();
    }

And here is the actual tokenization: 
public String[] tokenize(String word){
//divides the input by non-char symbol and
//puts tokens into state hashmap as keys
    String[] token;

    token = word.split("\\s|\\.|\\,");  
    return token;
}

Thank you very much for your help ! 

A:

You're probably reading the file with BufferedReader.readLine, which throws away the newline characters separating one line from the next, and then concatenating those strings, which is gluing the end of each line to the beginning of the next.
You're probably doing something like this:
String str = "";
while(true) {
    String next = bufferedReader.readline();
    if(next == null) break;
    str += next;
}

Do not use readline, use read(char[] cbuf, int off, int len)

