Win a copy of Design for the Mind this week in the Design forum!
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic

Reading a tab delimited txt file and replacing blanks with zeores.

 
Shalini Sridhar
Greenhorn
Posts: 4
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Hi,
I am trying to open a tab delimited file with 4 columns and corresponding values under it. If no value under the column, 0 should be replaced. I used the StringTokenizer and the split methods, but this doesnt seem to work. Any ideas?
E.g
Title1 Title2 Title3
4 7
5 2

SHould be like this:
Title1 Title2 Title3
4 0 7
0 5 2

This has been breaking my head. Actually, I dont have problems with code. I have kept writing and rewritg, trying various different methods. Instead of pasting my very messy code, i just gave the logic.

I used Buffered reader to read the file.
But here is a part of it - It should eventualy write to another file.This was just to use the StringTokenizer to retun me the number of tokens, including tabs.

record = new String(); //Sring to hold each record
BufferedWriter output = new BufferedWriter(new FileWriter("file"));

while ((record = br.readLine())!= null) //To read from file line by line
{

StringTokenizer st = new StringTokenizer(record, "\t", true);
int numTokens = st.countTokens();
String [] token = new String [numTokens];

for (int i = 0; i<numTokens ; i++)
{
token = st.nextToken("\t");
}
}

---------------------------------------------------------------------------I am just trying to figure out the logic for it. I need to be able to identfy a missing value under a heading. If the columns are delimted by tabs, how do I recognize the difference between a tab and an empty space?

Methods I Used
I tried using split, but ofcourse, it dint tell me where the tabs are. It just split the words separated by tabs.

I then used String Tokenizer and used the boolean delims as true, so the tabs were taken as tokens as well, but this doesnt help coz, I am stuck there. A value can be missing under any column. So how would I need to recognize that?

Help please!

 
Edwin Dalorzo
Ranch Hand
Posts: 961
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Why do you not try with java.io.StreamTokenizer or if you are using JDK 1.5 you may consider java.util.Scanner.

Maybe this way it could be a little easier.
 
Shalini Sridhar
Greenhorn
Posts: 4
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Thanks for your reply.
Actually i used split method and put the string into an array. It also stores the tab values. I just go through the array, replace empty strings with 0 and concatenate the string back with tabs.
How ever, the trick now is, I also need to delete an entire row, if only the last column value is empty.
Any suggestions?
[ May 20, 2006: Message edited by: Shalini Sridhar ]
 
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic