Hi,

I have stumbled on an interesting problem. I have thought 'n' thought, but haven't come up with any good ideas of how to handle this.

I have a text file that contains many records, but without the records being seperated. I need to figure out how to seperate these files, or at least how to write a program that recognizes different records and can then seperate them.

I don't expect anyone to write my program for me, but I need help seperating the records.

The beginning of every record looks like this: MSUBUGA JIMSON
P O BOX 21273
GABORONE
(Obviously they are all different, but always have 3 values on 3 lines.)
The end looks like this:
P107.17 P0.00 P225.08 P0.00 P332.25
(The numbers always vary, but there are always 5)

Any help will be greatly appreciated, Thank you.

Recommended Answers

All 6 Replies

BufferedReader, readLine, a counter, and String's split.

Hi..
You can use fileReader. Like an example :

FileReader reader = new FileReader( “file.txt" ) ;
BufferedReader in = new BufferedReader( reader ) ;

InputStream, readLIne

Thank you for all the quick replies.

I won't mark this thread as solved just yet, as I may have more questions later, but I will both ways and see what happens.

Great work guys :P

Eek!

Well, both ways worked. I handed in my project. Boss was satisfied.

The client gave us the wrong data though :/

Is there any way in java to determine whether or not a line of data is binary or text? e.g. it will always be one of the two.

Is there a method like [var].isBinary() or something? If so, which library should I import for it. I'm stumped. Googl'ing has proved fruitless so far, and I need to get this done by tomorrow this time.

Please help.

Well, text, is also "binary". If what you're reading might contain something that is not strictly plain text, then use a BufferedInputStream (with FileInputStream), rather than reader and convert the text parts to text with new String(byte[]).

Well, text, is also "binary". If what you're reading might contain something that is not strictly plain text, then use a BufferedInputStream (with FileInputStream), rather than reader and convert the text parts to text with new String(byte[]).

Thanks masijade!

Im going to try the following:

byte bytearray []  = test.getBytes();
     System.out.println("Test string : " + test);

     CharsetDecoder d = Charset.forName("US-ASCII").newDecoder();
     try {
       CharBuffer r = d.decode(ByteBuffer.wrap(bytearray));
       r.toString();
     }
     catch(CharacterCodingException e) {
       System.out.println("only regular ASCII characters please!");
       // interrupt the processing
       throw new Exception(e);
     }
     System.out.println("Ok, it's ASCII only!");
Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.