跳到主要內容

發表文章

目前顯示的是 2010的文章

範例 - Java NIO2 API 刪除完整目錄

Java 7 後建議使用 NIO2 API 處理目錄相關操作
新的 API 實作相對過去的方式有一些好處

1. 更好的效能
2. 能處理 symbolic link 等非實體存在的目錄、檔案
3. 搭配 Java 8 開始的 Stream API 能有更方便的寫法

寫法如下:

Path zippedPath = Paths.get(file.getAbsolutePath());
try {
    Files.walkFileTree(walkedPath, new FileVisitor<Path>() {
        @Override
        public FileVisitResult preVisitDirectory(Path dir,
                                                 BasicFileAttributes attrs) throws IOException {
            return FileVisitResult.CONTINUE;
        }

        @Override
        public FileVisitResult postVisitDirectory(Path directory, IOException ioe)
                throws IOException {
            Files.delete(directory);
            return FileVisitResult.CONTINUE;
        }

        @Override
        public FileVisitResult visitFile(Path file, BasicFileAttributes attributes)
                throws IOException {
            Files.delete(file);
            return FileVisitResult.CONTINUE;
        }

        @Override
        public FileVisitResult …

範例 - Java計算路徑占用的磁碟空間大小

public static long getFolderSize(String path) throws IOException {
        final AtomicLong size = new AtomicLong(0);
        Path directoryPath = Paths.get(path);

        try {
            Files.walkFileTree(directoryPath, new SimpleFileVisitor<Path>() {
                public FileVisitResult visitFile(Path file,
                                                 BasicFileAttributes attrs) {
                    size.addAndGet(attrs.size());
                    return FileVisitResult.CONTINUE;
                }
            });
        } catch (NoSuchFileException ignored) {
        }

        return size.get();
    }

JavaEE 檔案上傳範例-使用Cos套件

Java EE規格雖然是針對網路應用開發的,但直到 Servlet 3.0 前都沒有提供檔案上傳的功能
Servlet 3.0的上傳機制可以參考這篇
因為還沒打算轉換到Servlet 3.0 的打算下,先研究使用套件的解決方案
時下較為流行的上傳套件共有 Cos、FileUpload、SmartUpload
Cos套件是 O'reilly 公司提供,可至 http://www.servlets.com/cos 下載套件(cos-26Dec2008.zip)
FileUpload 的下載位置: http://commons.apache.org/fileupload/
FileUpload 使用須具備的套件:http://commons.apache.org/io/
SmartUpload 的網站已關閉,大概未來也不會繼續開發了

FileUpload 具有較多的功能,也有提供方便用來做 Ajax 應用的 listener
不過純以上傳效率來說Cos是最優秀的,贏過其他套件不少
這次實作選擇使用Cos

Ajax 基礎使用

last updated:2013/04

最早期的網路資料處理做法必須等待頁面回應後,才能進行下一步動作
等待頁面回應的過程中不能進行任何事,所以非常沒效率
所以後來發展出Ajax技術提高資料處理的效率

Ajax名稱的由來是 Asynchronous JavaScript + XML
在早期通常都將需要進行動態變更的資料儲存在XML檔中
能在不影響目前用戶體驗的前提下,由JavaScript在背後發送請求訊息更新資料
即使現在大多以更省傳輸量的JSON傳遞資料,這項異步(非同步)技術還是被叫做Ajax
GitHub檔案目錄

JavaScript 筆記(3)

這篇筆記紀錄:
1.JavaScript的物件導向寫法與型別判斷
2.陣列的排序法
3.以for迴圈及foreach迴圈取出物件的差別
4.String物件的常用方法
5.Math 物件的常用方法
6.addEventListener 與 attachEvent 函式說明

JavaScript DOM 操作

當瀏覽器讀取完網頁後,便會在JavaScript中生成一個全域變數 document
這個document物件就是這次討論的主題 Document Object Model(DOM)
透過它,我們能將HTML網頁結構視為XML做動態的處理

DOM將網頁視為節點構成的階層樹,如下圖所示:

JavaScript 筆記(2)

這篇筆記紀錄:
1.Timer用法
2.使用JavaScript作網頁元件CSS調整修改
3.取得外部CSS資訊的方法
4.Cookie範例
5.分離JavaScript與HTML程式碼
6.快速取得物件的小技巧
7.離開頁面的確認視窗寫法

[轉載] 美式鍵盤的微軟日文輸入法轉換狀態快速鍵

我們多數人使用的鍵盤是美式鍵盤(101/104鍵),安裝微軟的日文輸入法後會發現轉換輸入法狀態很麻煩,常常要用滑鼠點來點去。因為微軟日文輸入法提供的使用說明,是針對日本特殊鍵盤的使用者,沒提到美式鍵盤的轉換快速鍵。
常常看到有新手問這問題,我也不藏私。在此提供我個人經過多次嘗試後找出的美式鍵盤轉換快速鍵的對照表。

JSP 頁面透過JSTL格式標籤庫取得整數

在一般的JSTL頁面,若是以 EL 進行運算會取得有小數點的 Float 數值
例如 ${6/9} 這行EL會在JSP頁面中轉換成0.6666666666666666
在不寫Java程式碼於JSP頁面的前提下,我們可以考慮使用JSTL的格式標籤庫

使用時先引入JSTL的格式標籤庫:
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>

這樣就可以在JSP頁面中使用formatNumber標籤               
<fmt:formatNumber type="number" value="${requestScope.page / 10}" maxFractionDigits="0" var="num" />

maxFractionDigits指定成0,表示取0個小數點,也就是取整數的意思
這樣就能夠在網頁中用EL: ${var} 取得運算後的整數值

HTML 的ASCII編碼

在HTML文件裡,有些符號被使用在描述網頁結構上
例如 '<' 和 '>' 就是描述 HTML element 的一部份
如果我們不是要用這些符號寫個 "<div>....</div>" 之類的結構
而是要在網頁上顯示這些符號的話,通常會使用這些符號的ASCII code

參考來源,以下紀錄較常見的符號

                符號                HTML語法
空白                                    &nbsp;
單引號        '                        &#39; (實體名稱是&apos;,但因IE不支援,所以用實體編號替代)
雙引號        "                        &quot;
連號           &                       &amp;
小於           <                       &lt;
大於           >                       &gt;
雙左箭頭   «                       &laquo;
雙右箭頭   »                       &raquo;
無限符號    ∞                     &infin;
版權符號    ©                       &copy;
註冊商標    ®                       &reg;
勾選符號    Ö                       <font face=symbol>&Ouml;</font>
加減號        ±                       &plusmn;
乘號           ×                       &times;
除號           ÷                   …

JDK安裝環境設定

http://www.oracle.com/technetwork/java/javase/downloads/index.html
到Oracle下載最新版的jdk

接著到  [電腦] -> 右鍵[內容] -> [進階系統設定] -> [環境變數]  中做設定




JAVA_HOME         C:\Program Files\Java\jdk-9     
Path                         %JAVA_HOME%\bin

不存在的變數以新增建立即可
建立 JAVA_HOME 變數儲存 Java路徑資料
日後昇級版本只要修改 JAVA_HOME 就能一併修改其他套用 JAVA_HOME 的環境變數
Path設定能簡化呼叫 JDK 的路徑宣告

如此一來就完成最基礎的設定
接著可以到windows的search裡面打上cmd
輸入 java -version可以看到java版本的資訊
再輸入javac,如果有出現許多指令就代表成功囉