Home | Contact Us | FAQ | Search & Site Map | Link to Us
Sign In | Join | Other 45 Sites in Network
HomeAnnouncementsWhite Papers
Discussion GroupsFirst AidDatabasesJavaBeansGUIJava 3DVirtual MachineCORBASecurityToolsGeneral
Java DirectoryOpen Source ProjectsSample Book ChaptersUser GroupsWeb Resources
Related Topics
Databases.NETMore Topics ...

Java Forum / General / September 2006

Tip: Looking for answers? Try searching our database.

really interesting... or really dull. (depends on your attitude)

Thread view: 
TrevorBoydSmith@gmail.com - 31 Aug 2006 22:27 GMT
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?
Patricia Shanahan - 31 Aug 2006 22:50 GMT
> 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
[quoted text clipped - 7 lines]
>
> 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
TrevorBoydSmith@gmail.com - 01 Sep 2006 17:38 GMT
umm well turns out the original post that I made is incorrect.  The
reason for this happening was not because of java readline.  It was
because of the text file having a mix of \n and \r\n.  Resulting in
weird java parsing because it assumes which line feed is specific for a
stream/platform.

sorry folks


Free Magazines

Get these publications absolutely FREE for up to 12 months. There are no hidden fees and no obligation. Simply choose a title, complete the application form and submit it. Read more ...

Oracle MagazineNetwork ComputingComputer WorldBio-IT WorldeWeekInformation WeekInfosecurity
 
Sign In
Join
My Latest Posts
My Monitored Threads
My Blog
My Photo Gallery
My Profile
My Homepage

Start New Thread
Enable EMail Alerts
Rate this Thread



©2008 Advenet LLC   Privacy Policy - Terms of Use
This website includes both content owned or controlled by Advenet as well as content owned or controlled by third parties.