Reputation: 93
I'm trying to write to the file Days2.dat in a specific format like this:
Sunday
Advanced Open Water Dive Certificate
Sailing
Generation Next
Monday
Helping Hands
Beach Touch Rugby
Running Club
Yoga Club
Tennis Lessons
Tuesday
Recycling Club
Best Buddies
Crochet Club
Movie Club
Shooting Club
Wednesday
Table Tennis
Modern Dance
Contemporary Dance
Gavel Club
Thursday
Cooking
Gym Training
When a button is clicked, the actionperformed should:
Read from the file Activities.dat and identify the activity's day and name
Write to the file Days2.dat in the format as above Activities.dat format is such:
Day
ActivityName
Supervisor Name
Location
Paid?
e.g.
Sunday
Advanced Open Water Dive Certificate
Mr.Jones
N/A
Yes
Sunday
Sailing
Mr. Jackson
N/A
Yes
Sunday
Generation Next
Ms.Steele
N/A
Yes
Monday
Helping Hands
Ms.Wafa
ANX0
No
Monday
Beach Touch Rugby
Mr.Jones
N/A
No
Current code to write into Days2.dat
File f1 = new File("Days2.dat");
File f2 = new File("Activities.dat");
f1.delete();
try{
BufferedWriter writer = new BufferedWriter(new FileWriter(f1, true));
BufferedReader reader = new BufferedReader(new FileReader(f2));
while(reader.ready())
{
String CDay = reader.readLine();
String CActivityName = reader.readLine();
String CSupervisor = reader.readLine();
String CLocation = reader.readLine();
String CPaid = reader.readLine();
String nothing = reader.readLine();
writer.write("Sunday" + "\n");
if(CDay.equals("Sunday"))
{
writer.write(CActivityName + "\n");
}
writer.write("Monday" + "\n");
if(CDay.equals("Monday"))
{
writer.newLine();
writer.write(CActivityName + "\n");
}
writer.write("Tuesday" + "\n");
if(CDay.equals("Tuesday"))
{
writer.newLine();
writer.write(CActivityName + "\n");
}
writer.write("Wednesday" + "\n");
if(CDay.equals("Wednesday"))
{
writer.newLine();
writer.write(CActivityName + "\n");
}
writer.write("Thursday" + "\n");
if(CDay.equals("Thursday"))
{
writer.newLine();
writer.write(CActivityName + "\n");
}
}
writer.flush();
writer.close();
reader.close();
}
catch (IOException ex) {
Logger.getLogger(StartUpFrame.class.getName()).log(Level.SEVERE, null, ex);
}
The current output, however is like this(a little long, sorry) - the error is evident:
Sunday
Advanced Open Water Dive Certificate
Monday
Tuesday
Wednesday
Thursday
Sunday
Sailing
Monday
Tuesday
Wednesday
Thursday
Sunday
Generation Next
Monday
Tuesday
Wednesday
Thursday
Sunday
Monday
Helping Hands
Tuesday
Wednesday
Thursday
Sunday
Monday
Beach Touch Rugby
Tuesday
Wednesday
Thursday
Sunday
Monday
Running Club
Tuesday
Wednesday
Thursday
Sunday
Monday
Yoga Club
Tuesday
Wednesday
Thursday
Sunday
Monday
Tennis Lessons
Tuesday
Wednesday
Thursday
Sunday
Monday
Tuesday
Recycling Club
Wednesday
Thursday
Sunday
Monday
Tuesday
Best Buddies
Wednesday
Thursday
Sunday
Monday
Tuesday
Crochet Club
Wednesday
Thursday
Sunday
Monday
Tuesday
Movie Club
Wednesday
Thursday
Sunday
Monday
Tuesday
Shooting Club
Wednesday
Thursday
Sunday
Monday
Tuesday
Wednesday
Table Tennis
Thursday
Sunday
Monday
Tuesday
Wednesday
Modern Dance
Thursday
Sunday
Monday
Tuesday
Wednesday
Contemporary Dance
Thursday
Sunday
Monday
Tuesday
Wednesday
Gavel Club
Thursday
Sunday
Monday
Tuesday
Wednesday
Thursday
Cooking
Sunday
Monday
Tuesday
Wednesday
Thursday
Gym Training
Upvotes: 0
Views: 105
Reputation: 1313
You are currently writing the day of the week every time no matter what day we are actually processing which is not quite correct.
Since there are multiple days of the week in your file I would try something as follows:
List
(or some other object) for each day of the week. A map may be of more use here if you do not want to create so many objects e.g. Map<String, List<String>>
Upvotes: 2