2013-03-10 59 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