Re: really interesting... or really dull. (depends on your attitude)
TrevorBoydSmith@gmail.com wrote:
ya so I have been working with streams/sockets/files/charstreams etc
etc a lot lately *rolls eyes*. I just found out that when you have a
BufferedReader and you call the ``readline()'' command. It will only
read 30 string ``tokens'' (please see java api for what a token is. In
Stringtokenizer/streamtokenizer).
Basically I found this out because my lines that get printed out are of
variable length. And I counted by hand the tokens in each line and
found that there are 30 tokens.
weird eh?
It is weird, but there is something else going on. It is not an
inherent BufferedReader behavior. Try running this program:
import java.io.BufferedReader;
import java.io.IOException;
import java.io.StringReader;
import java.util.StringTokenizer;
public class BufferedReaderTest {
public static void main(String[] args) throws IOException {
// Build a string with a couple of lines, each with lots of
// tokens
StringBuffer sb = new StringBuffer();
for (int i = 0; i < 100; i++) {
sb.append("a, 9, ");
}
sb.append(System.getProperty("line.separator"));
sb.append(sb.toString());
String data = sb.toString();
// Attach a buffered reader to it
BufferedReader reader = new BufferedReader(new StringReader(
data));
System.out.println("Line 1:");
String line1 = reader.readLine();
System.out.println(line1);
System.out.println("Line 2:");
System.out.println(reader.readLine());
// Check the number of tokens
System.out.print("Line 1 tokens = ");
System.out.println(new StringTokenizer(line1).countTokens());
}
}
BufferedReader reads a line that StringTokenizer thinks has 200 tokens.
Patricia