恬然自得.活在當下: 06/01/2011 - 07/01/2011

2011年6月21日 星期二

[考前複習]使用BufferedReader與BufferedWriter練習檔案存取

今天下午的總複習順利落幕了,雖然途中有班導出現,算是一點小插曲。很難得有這麼一次在多人面前用白板教學,看見大家帶著疲累的身體,卻還是精神奕奕地聽我說著枯燥的Java(或者我說的也很枯燥),真的很感動XD 感謝大家驚人的意志力和用心。

所以今晚就回饋這份程式碼禮物@@”另外還有一份是平時都會整理給我有教過的人用的複習卷,因為以往都是少少的人而已,所以我都單獨給,這次比較多人,就打包起來上傳在網路空間了,這是限時的禮物~等網路空間自動刪除便不再補檔。

其實這個範例不算太難,因為用BufferedReaderBufferedWriter寫起來就是就是簡潔有力! (如果不用的話還要宣告陣列,以及轉型的問題)
Java程式的設計師一直致力於替程式設計人員創造一個好讀好寫的程式,看來這點也要感謝他們吧。


程式碼:

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;


public class s11967046 {

 public static void main(String[] args) {
  FileReader reader = null;
  FileWriter writer = null;
  BufferedReader br = null;
  BufferedWriter bw = null;
  String data;
  
  try {
   //建立物件,並且裝上Buffer
   reader = new FileReader("A.txt");
   writer = new FileWriter("B.txt",true);
   br = new BufferedReader(reader);
   bw = new BufferedWriter(writer);
   
   //使用while迴圈逐行讀取資料
   //再利用write將data儲存資料
   while((data = br.readLine()) != null){
    bw.write(data);
    //每次會讀取一行,所以幫它換行
    bw.newLine();
   }

  } catch(FileNotFoundException e){
   System.out.print("檔案找不到");
   
  } catch (IOException e) {
   
  } finally{
   try {
    //記得兩個都要關閉
    br.close();
    bw.close();
   } catch (IOException e) {

   }
   
  }
 }

}


2011年6月14日 星期二

[加分]Java Swing練習FileNameFilter搜尋文件

功課這次是加分題,所以同學們擔心考試太差的話,這個功課也要交唷!FileNameFilter這個類別在Java Swing的官方文件也有介紹到,我想各位同學有興趣的話,可以參考:

大概在中間地帶,副標題寫著Filtering the List of Files。必須要宣告一個類別去實作FilenameFilter,必須要去覆寫accept方法,在裡面撰寫自己的商業邏輯。而如果要能夠搜尋副檔名的話,只要透過Filelist方法中放入FilenameFilter,就會自動把檔案路徑給予Filter,然後再把檔案中的副檔名擷取出來,進行字串的比較即可。

擷取副檔名可使用String.lastIndexOf(‘.’);
他就會取出一個字串中最後一個小數點的位置(通常最後一個小數點就是副檔名的那一個)。之後再使用String.substring和迴圈去抓出副檔名名稱,如此一來就能成功判斷。

當然我用了比較簡單的方法,String.endsWith(String suffix);

這個方法是取抓字串是以suffix作為結尾,則回傳truefalse。但是我上一個講的方法是Java官方公布出來的唷,我想工程師們一定有某種考量才會寫的比較麻煩,而我用的方法也許只能在比較簡單的程式上執行,只能說我還是新手XD不知道他們考量的是什麼。

按下「Launch」鈕,可直接操縱此次功課的程式,歡迎試試看唷!
P.S.家裡用IE可以成功執行。


不好意思,這次執行會沒辦法看見預定的結果,似乎是因為jar檔上傳在伺服器上,所以沒辦法搜尋本機端的資料夾。不過我想這應該也是我技術不足所造成><"如果有另外研究到方法,再寫看看嘍-"-

2011年6月7日 星期二

[功課]Java Swing使用KeyListener更有即時性..第三次修正!

(第三修:真慘-"-這個作業在理解上的誤差,導致我已經第三次修正了,請同學們趕緊改回來QQ)


這次老師的要求,感覺比較具有即時性,至少當你在打入數字和打勾時,就能馬上計算出價錢;前幾次功課也特別寫了一個「即時運算」的功能,沒想到這次功課就出了一個類似的題目!

另外我在查找資料的過程,也搜尋到一個不錯的網誌,分享給各位參考參考;寫這個教學網誌的Blog主也真是夠好心呀!看到他寫的程式碼也真的讓我多學到很多東西。

程式語言教學誌:
程式語言教學誌--Java 入門指南 - GUI 的基本概念:
程式語言教學誌-- Java 入門指南 - 排版管理員:
程式語言教學誌-- Java 入門指南 – GridBagLayout
之後還有很多很多系列的文章就請大家自行前往嘍~~

按下「Launch」鈕,可直接操縱此次功課的程式,歡迎試試看唷!
P.S.家裡用IE可以成功執行。

[功課]Java Swing練習使用KeyListener

這次的功課,老師最主要是讓我們練習寫鍵盤事件,可是老師又沒有在智慧大師上貼範例- 請大家同樣去看我之前分享的網址,上面都有教學唷,當然大家也可以直接連結到以下網址:http://download.oracle.com/javase/tutorial/uiswing/events/index.html
 
我覺得大家真的可以多玩玩Swing,個人是覺得還滿有趣的,至少像是當時在學VB一樣,會去排版一些元件,或是隨興加加自己喜歡的功能XD 這一次我寫了兩個範例,因為重複性的Label還有程式碼很多,所以我利用陣列與迴圈的方式,節省了重複性的程式碼,請各位在觀看兩段程式碼就會發現差別了。

按下「Launch」鈕,可直接操縱此次功課的程式,歡迎試試看唷!
P.S.家裡用IE可以成功執行。