2013-03-10 58 views
0

我试图写入文件Days2.dat在这样的特定格式:麻烦特定格式写入文件

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 

当点击一个按钮,的actionPerformed应该:

  • 从文件中读取Activities.dat并确定活动的日期和名字

  • 写入格式如上Activities.dat格式文件Days2.dat是这样的:

ActivityName

主管姓名

位置

付费?

例如

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 

当前代码写入到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); 
} 

电流输出,但是是这样的(有点长,遗憾) - 错误是显而易见的:

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 
+0

您是否意指将file1.dat复制到另一个file.dat中,格式与file1.dat相同? – Azad 2013-03-10 21:01:24

+0

虽然不完全复制file1.dat的相同数据:数据已更新,并且每当数据更新时,我也希望更新file1.dat。因此,如果buttonA使用新数据执行此过程,则新数据必须包含在具有相同格式的新file1.dat中 – Geuni 2013-03-10 21:05:46

回答

2

您目前正在写每周的星期几ime不管我们实际处理哪一天,这是不正确的。

由于有一周多天在你的文件我想尝试的东西如下:

  • 创建List(或其他对象)一周的每一天。如果您不想创建如此多的对象,则地图可能更有用。 Map<String, List<String>>
  • 确定我们正在使用您的CDay变量处理的星期几(正如您当前所做的那样)。
  • 如果是匹配,则将该活动添加到列表中。
  • 一旦文件被读取,将列表的内容写入一周中每一天下的新文件。
+0

因为我对使用地图不太熟悉,所以我想我会创建多个对象。说到这一点,当你说: “为每周的每一天创建一个列表(或其他物体)” 你能告诉我1个例子的一天吗?我不太了解这个概念 – Geuni 2013-03-10 21:02:27

+0

类似'列表 sunday_list = new ArrayList ();' – Byron 2013-03-10 21:07:44

+0

抱歉再次打扰,但我应该在哪里初始化对象?采取参数“错误 – Geuni 2013-03-10 21:18:26