顯示具有 Java 標籤的文章。 顯示所有文章
顯示具有 Java 標籤的文章。 顯示所有文章

2023-08-05

使用 映射 來存取私有資訊

最近由於學習編寫 Android應用程式 所以再次學習 Java
發現一些功能不能直接使用,而是需要使用 映射(Reflection) 來執行
在下因此尋找 映射 資料

2023-05-22

將 Android 裝置當作 IOT 裝置

過去在下曾將 Android 裝置當作伺服器使用
雖然效果不及正式的工具(例如 Raspberry Pi 及 NAS)
但作為既有工具,如果不轉售,當作後備裝置使用,亦可以強化其功能
只當作伺服器使用,又好像未完全發揮功能,因此在下再嘗試更多可能性

2016-08-29

Java 的 Invalid HTTP method 解決方法

最近因為經常接觸一些 Web API 所以經常使用 curl 來發送 HTTP request
但使用一段時間後,發現 curl 不能發送 multipart/related 的 HTTP request
因此需要尋找一些替待方法……

2016-01-10

Java Generic Creation

有時在製作 Java 類別會應用到 Generic
但製作 Generic 時會發生如 Generic Array Creation 的錯誤
應如何正式宣告 Generic ?

2015-03-26

Java Json Parser

最近由於在下要編寫一些小工具需解析 Json ,而在下較喜歡使用 Java
但發現 Java SE 預設的 API 並沒有 Json Parser ,需要 Java EE 才有預設 Json Parser

2014-04-17

Dia 的 database 圖表轉換成 MySQL

Dia 是一種跨平台、放開資源的流程圖製作軟件,能繪製多種不同類型的圖表如資料庫圖表、類別圖表等
以 XML 或 GZip 壓縮後的 XML 作為文件保存格式,方便於其他程式語言分析

2012-07-09

Linux 切換 Java 環境設定

Java 允許使用者在同一作業系統中安裝不同版本的 Java 環境
而不需要移除不適用的版本便可以立即切換
若果你每次都會使用絕對路徑這篇文章可以對你作用不大
以 Windows 來說,由於 Java 環境只會透過 PATH 來切換,若果需要切換 Java 環境只要更改 PATH 的變數即可
可是大部分 Linux 發行版大都預裝了 OpenJDK 這個 Java 環境
當使用 java 等 Java 環境執行指令時,即使已經設定 PATH,但仍會以 OpenJDK 為預設 Java 環境

2012-04-19

XML I18N

不少電腦語言都各自有自己專用的 I18N (Internationalization) 寫法,例如
PHP 通常會用 gettext 或 intl
Java, JSP, Servlet 通常會用 Locale + ResourceBundle 配合 Properties file
另外還有各種 Framework 都各自有一套 I18N 寫法

但是若果由一種 I18N 寫法至另一種 I18N 寫法顯然是需要一點點時間學習……

2011-06-29

利用 Java 發送 HTTP POST 請求 (Using Java to send HTTP Request with POST method)

import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStreamWriter;
import java.net.URL;
import java.net.URLConnection;

2011-02-24

使用 Java 上載檔案至 FTP 伺服器 (Use Java to upload file to FTP Server)

import java.io.DataOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import sun.net.TelnetOutputStream;
import sun.net.ftp.FtpClient;

2010-06-03

利用 Java 將 Zip 格式解壓縮 (Use Java to decompress a ZIP file)

import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.zip.ZipEntry;
import java.util.zip.ZipInputStream;

public static void decompress(File source, File destination) throws IOException{
    if (!destination.exists() || destination.isDirectory()){
        destination.mkdirs();
        ZipInputStream zis = new ZipInputStream(new FileInputStream(source));
        byte[] buffer = new byte[1024];
        for (ZipEntry zip; (zip = zis.getNextEntry()) != null;){
            File file = new File(destination, zip.getName());
            if (zip.isDirectory()){
                file.mkdirs();
            } else {
                FileOutputStream fos = new FileOutputStream(file);
                for (int length; (length = zis.read(buffer)) > 0;){
                    fos.write(buffer, 0, length);
                }
                fos.close();
            }
            zis.closeEntry();
        }
        zis.close();
    }
}

利用 Java 將檔案與資料夾壓縮成 Zip 格式 (Use Java to compress file(s) or directory(ies) as ZIP format)

import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.zip.Deflater;
import java.util.zip.ZipEntry;
import java.util.zip.ZipOutputStream;

public static void compress(File source, File destination) throws IOException{
    compress(source, destination, null, Deflater.DEFAULT_COMPRESSION);
}

public static void compress(File source, File destination, String comment, int level) throws IOException{
    ZipOutputStream zos = new ZipOutputStream(new FileOutputStream(destination));
    zos.setComment(comment);
    zos.setLevel(level);
    compress(zos, source.getParent(), source);
    zos.flush();
    zos.close();
}

private static void compress(ZipOutputStream zos, String rootpath, File source) throws IOException{
    String filename = source.toString().substring(rootpath.length() + 1);
    if (source.isFile()){
        zos.putNextEntry(new ZipEntry(filename));
        FileInputStream fis = new FileInputStream(source);
        byte[] buffer = new byte[1024];
        for (int length; (length = fis.read(buffer)) > 0;){
            zos.write(buffer, 0, length);
        }
        fis.close();
        zos.closeEntry();
    } else if (source.isDirectory()){
        zos.putNextEntry(new ZipEntry(filename + "/"));
        zos.closeEntry();
        File[] files = source.listFiles();
        for (File file : files){
            compress(zos, rootpath, file);
        }
    }
}

2010-05-18

2010-05-09

利用 Java 採取系統剪貼板的圖像 (Use Java to capture image from system clipboard)

import java.awt.Toolkit;
import java.awt.datatransfer.DataFlavor;
import java.awt.datatransfer.Transferable;
import java.awt.datatransfer.UnsupportedFlavorException;
import java.awt.image.BufferedImage;
import java.io.IOException;

2010-05-08

利用 Java 採取畫面圖像 (Use Java to capture the system screen image)

import java.awt.AWTException;
import java.awt.Rectangle;
import java.awt.Robot;
import java.awt.Toolkit;
import java.awt.image.BufferedImage;
import java.io.IOException;

2010-04-19

利用 Java 下載 HTTP 網絡上的檔案 (Use Java to download file from HTTP)

import java.io.IOException;
import java.net.ConnectException;
import java.net.URL;
import java.io.InputStream;
import java.io.FileOutputStream;

2010-04-17

於 Ubuntu 手動安裝 Java EE 與 NetBeans 等軟件 (Manual install Java EE and NetBeans)

前後 http://www.netbeans.org/
Visit http://www.netbeans.org/

選擇語言後按 "Download Free NetBeans IDE 6.8"
(NetBeans IDE 6.8 是 2010-04-17 最新版本)
Select the language and click "Download Free NetBeans IDE 6.8"
(NetBeans IDE 6.8 is the latest version on 2010-04-17)