1. 字串與整數互轉
String a = String.valueOf(2); // int -> String
int i = Integer.parseInt(a); // String -> int
2. 追加寫入檔案
try (BufferedWriter out = new BufferedWriter(new FileWriter("file.txt", true))) {
out.write("content");
} catch (IOException e) { e.printStackTrace(); }
3. 取得當前方法名
String methodName = Thread.currentThread().getStackTrace()[1].getMethodName();
4. 字串轉日期
Date date = new SimpleDateFormat("dd.MM.yyyy").parse(myString);
5. JDBC 連線 Oracle
Class.forName("oracle.jdbc.driver.OracleDriver");
Connection con = DriverManager.getConnection(url, user, pass);
6. util.Date 轉 sql.Date
java.sql.Date sqlDate = new java.sql.Date(utilDate.getTime());
7. NIO 快速複製大檔案
FileChannel in = new FileInputStream(src).getChannel();
FileChannel out = new FileOutputStream(dest).getChannel();
long pos = 0, size = in.size();
while (pos < size) pos += in.transferTo(pos, 64*1024*1024 - 32*1024, out);
8. 產生圖片縮略圖
BufferedImage thumb = new BufferedImage(w, h, BufferedImage.TYPE_INT_RGB);
Graphics2D g = thumb.createGraphics();
g.drawImage(srcImg, 0, 0, w, h, null);
ImageIO.write(thumb, "jpg", new File(outPath));
9. 建立 JSON(需 json-rpc-1.0.jar)
JSONObject json = new JSONObject();
json.put("city", "Taipei");
String out = json.toString();
10. iText 產生 PDF
Document doc = new Document();
PdfWriter.getInstance(doc, new FileOutputStream("out.pdf"));
doc.open();
doc.add(new Paragraph("Hello"));
doc.close();
11. HTTP Proxy 設定
System.setProperty("http.proxyHost", "proxy.com");
System.setProperty("http.proxyPort", "8080");
12. 單例模式(雙重檢查鎖 / Enum)
// Enum 單例 - 最簡潔、線程安全、防反序列化破壞
public enum Singleton { INSTANCE; public void doWork() {} }
Singleton.INSTANCE.doWork();
13. 螢幕截圖
BufferedImage img = new Robot().createScreenCapture(
new Rectangle(Toolkit.getDefaultToolkit().getScreenSize()));
ImageIO.write(img, "png", new File("screen.png"));
14. 列出目錄/過濾檔案
File dir = new File("path");
File[] files = dir.listFiles(f -> f.isDirectory()); // 只列資料夾
15. 建立 ZIP/JAR
try (ZipOutputStream zos = new ZipOutputStream(new FileOutputStream("out.zip"))) {
zos.putNextEntry(new ZipEntry("file.txt"));
Files.copy(Paths.get("file.txt"), zos);
zos.closeEntry();
}
16. 解析 XML (DOM)
Document doc = DocumentBuilderFactory.newInstance().newDocumentBuilder().parse(file);
NodeList list = doc.getElementsByTagName("student");
17. 陣列轉 Map (Apache Commons Lang)
String[][] data = {{"US","NY"},{"UK","London"}};
Map map = ArrayUtils.toMap(data);
18. 發送郵件
Session session = Session.getInstance(props, authenticator);
Message msg = new MimeMessage(session);
msg.setFrom(new InternetAddress(from));
msg.setRecipients(Message.RecipientType.TO, InternetAddress.parse(to));
msg.setSubject(subject);
msg.setText(content);
Transport.send(msg);
19. 發送 HTTP GET 請求
try (BufferedReader br = new BufferedReader(
new InputStreamReader(new URL("https://example.com").openStream()))) {
String line;
while ((line = br.readLine()) != null) System.out.println(line);
}
20. 動態調整陣列大小
public static Object resizeArray(Object oldArray, int newSize) {
int oldSize = Array.getLength(oldArray);
Class> comp = oldArray.getClass().getComponentType();
Object newArray = Array.newInstance(comp, newSize);
System.arraycopy(oldArray, 0, newArray, 0, Math.min(oldSize, newSize));
return newArray;
}