I have to write one java application, which will read the csv file and write the columns into a hashmap. For every 20 records, I need to read the csv file, add ito a hashmap and write it to a new csv file. Csv file will be having more than 1000 records. So for every 20 records, i need to write the contents to a new csv file. Request you to please help me out in this.
Looking at the requirement, I would split it into small requirements.
1) Code to access the file contents
1.a) Code to read the contents line by line
2) Maintain a counter for the number of lines read
3) Process read data on the fly (after reading every line) or in a batch (after reading 20 lines)
3.a) Extract the read data into individual column values
4) Code to write the read data to a new csv file
Hint: CSV format usually indicates that the data is going to be textual, with commas as delimiters
The code in my previous post will surely throw a compile time exception. I forgot to mention that. But the thing is i need to add those csv contents into map. Then from map i need to write the contents to a new csv file. Could you please help me out in this wit my below code.
Thanks a lot for your reply. Say my csv file is having 1000 records. Instead of reading/writing at one shot, I need to read 20 records at one shot, write it to a map and from map write the contents to a new csv file. Im stuck up in the place where i need to check for every 20th record !
Why are you thanking Rob when you seem to have ignored his reply ?
In general, what Campbell says in his first post is good advice, but when it comes to CSV files this quote from Rob's link is worth reading
CSV is not as easy to read and write as it first looks - once all the special cases are considered, one might as well use a library.
You already have lineNumber and tokenNumber. You are not using it.
For every line, check of the line/token number has reached the desired count. If yes, proceed to the file writing, if no, continue reading.
Agree with Campbell. List would be a better option.