20個有用的java片段
-
字串有整型的相互轉換
1.String a = String.valueOf(2); //integer to numeric string
2.int i = Integer.parseInt(a); //numeric string to an int -
向檔案末尾新增內容
1.BufferedWriter out = null;
2.try {
3. out = new BufferedWriter(new FileWriter(”filename”, true));
4. out.write(”aString”);
5.} catch (IOException e) {
6. // error processing code
7.} finally {
8. if (out != null) {
9. out.close();
10. }
11.} -
得到當前方法的名字
1.String methodName = Thread.currentThread().getStackTrace()[1].getMethodName(); -
轉字串到日期
1.java.util.Date = java.text.DateFormat.getDateInstance().parse(date String);
或者是:
1.SimpleDateFormat format = new SimpleDateFormat( “dd.MM.yyyy” );
2.Date date = format.parse( myString ); -
使用JDBC連結Oracle
1.public class OracleJdbcTest
2.{
3. String driverClass = “oracle.jdbc.driver.OracleDriver”;
4.
5. Connection con;
6.
7. public void init(FileInputStream fs) throws ClassNotFoundException, SQLException, FileNotFoundException, IOException
8. {
9. Properties props = new Properties();
10. props.load(fs);
11. String url = props.getProperty(“db.url”);
12. String userName = props.getProperty(“db.user”);
13. String password = props.getProperty(“db.password”);
14. Class.forName(driverClass);
15.
16. con=DriverManager.getConnection(url, userName, password);
17. }
18.
19. public void fetch() throws SQLException, IOException
20. {
21. PreparedStatement ps = con.prepareStatement(“select SYSDATE from dual”);
22. ResultSet rs = ps.executeQuery();
23.
24. while (rs.next())
25. {
26. // do the thing you do
27. }
28. rs.close();
29. ps.close();
30. }
31.
32. public static void main(String[] args)
33. {
34. OracleJdbcTest test = new OracleJdbcTest();
35. test.init();
36. test.fetch();
37. }
38.}
6. 把 Java util.Date 轉成 sql.Date
1.java.util.Date utilDate = new java.util.Date();
2.java.sql.Date sqlDate = new java.sql.Date(utilDate.getTime()); -
使用NIO進行快速的檔案拷貝
1.public static void fileCopy( File in, File out )
2. throws IOException
3. {
4. FileChannel inChannel = new FileInputStream( in ).getChannel();
5. FileChannel outChannel = new FileOutputStream( out ).getChannel();
6. try
7. {
8.// inChannel.transferTo(0, inChannel.size(), outChannel); // original – apparently has trouble copying large files on Windows
9.
10. // magic number for Windows, 64Mb - 32Kb)
11. int maxCount = (64 * 1024 * 1024) - (32 * 1024);
12. long size = inChannel.size();
13. long position = 0;
14. while ( position < size )
15. {
16. position += inChannel.transferTo( position, maxCount, outChannel );
17. }
18. }
19. finally
20. {
21. if ( inChannel != null )
22. {
23. inChannel.close();
24. }
25. if ( outChannel != null )
26. {
27. outChannel.close();
28. }
29. }
30. } -
建立圖片的縮圖
1.private void createThumbnail(String filename, int thumbWidth, int thumbHeight, int quality, String outFilename)
2. throws InterruptedException, FileNotFoundException, IOException
3. {
4. // load image from filename
5. Image image = Toolkit.getDefaultToolkit().getImage(filename);
6. MediaTracker mediaTracker = new MediaTracker(new Container());
7. mediaTracker.addImage(image, 0);
8. mediaTracker.waitForID(0);
9. // use this to test for errors at this point: System.out.println(mediaTracker.isErrorAny());
10.
11. // determine thumbnail size from WIDTH and HEIGHT
12. double thumbRatio = (double)thumbWidth / (double)thumbHeight;
13. int imageWidth = image.getWidth(null);
14. int imageHeight = image.getHeight(null);
15. double imageRatio = (double)imageWidth / (double)imageHeight;
16. if (thumbRatio < imageRatio) {
17. thumbHeight = (int)(thumbWidth / imageRatio);
18. } else {
19. thumbWidth = (int)(thumbHeight * imageRatio);
20. }
21.
22. // draw original image to thumbnail image object and
23. // scale it to the new size on-the-fly
24. BufferedImage thumbImage = new BufferedImage(thumbWidth, thumbHeight, BufferedImage.TYPE_INT_RGB);
25. Graphics2D graphics2D = thumbImage.createGraphics();
26. graphics2D.setRenderingHint(RenderingHints.KEY_INTERPOLATION, RenderingHints.VALUE_INTERPOLATION_BILINEAR);
27. graphics2D.drawImage(image, 0, 0, thumbWidth, thumbHeight, null);
28.
29. // save thumbnail image to outFilename
30. BufferedOutputStream out = new BufferedOutputStream(new FileOutputStream(outFilename));
31. JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(out);
32. JPEGEncodeParam param = encoder.getDefaultJPEGEncodeParam(thumbImage);
33. quality = Math.max(0, Math.min(quality, 100));
34. param.setQuality((float)quality / 100.0f, false);
35. encoder.setJPEGEncodeParam(param);
36. encoder.encode(thumbImage);
37. out.close();
38. }
9. 建立 JSON 格式的資料
請先閱讀這篇文章 瞭解一些細節,
並下面這個JAR 檔案:json-rpc-1.0.jar (75 kb)
1.import org.json.JSONObject;
2…
3…
4.JSONObject json = new JSONObject();
5.json.put(“city”, “Mumbai”);
6.json.put(“country”, “India”);
7…
8.String output = json.toString();
9… -
使用iText JAR生成PDF
閱讀這篇文章 瞭解更多細節
1.import java.io.File;
2.import java.io.FileOutputStream;
3.import java.io.OutputStream;
4.import java.util.Date;
5.
6.import com.lowagie.text.Document;
7.import com.lowagie.text.Paragraph;
8.import com.lowagie.text.pdf.PdfWriter;
9.
10.public class GeneratePDF {
11.
12. public static void main(String[] args) {
13. try {
14. OutputStream file = new FileOutputStream(new File(“C:\Test.pdf”));
15.
16. Document document = new Document();
17. PdfWriter.getInstance(document, file);
18. document.open();
19. document.add(new Paragraph(“Hello Kiran”));
20. document.add(new Paragraph(new Date().toString()));
21.
22. document.close();
23. file.close();
24.
25. } catch (Exception e) {
26.
27. e.printStackTrace();
28. }
29. }
30.} -
HTTP 代理設定
閱讀這篇 文章 瞭解更多細節。
1.System.getProperties().put(“http.proxyHost”, “someProxyURL”);
2.System.getProperties().put(“http.proxyPort”, “someProxyPort”);
3.System.getProperties().put(“http.proxyUser”, “someUserName”);
4.System.getProperties().put(“http.proxyPassword”, “somePassword”); -
單例項Singleton 示例
請先閱讀這篇文章 瞭解更多資訊
1.public class SimpleSingleton {
2. private static SimpleSingleton singleInstance = new SimpleSingleton();
3.
4. //Marking default constructor private
5. //to avoid direct instantiation.
6. private SimpleSingleton() {
7. }
8.
9. //Get instance for class SimpleSingleton
10. public static SimpleSingleton getInstance() {
11.
12. return singleInstance;
13. }
14.}
另一種實現
1.public enum SimpleSingleton {
2. INSTANCE;
3. public void doSomething() {
4. }
5.}
6.
7.//Call the method from Singleton:
8.SimpleSingleton.INSTANCE.doSomething(); -
抓屏程式
閱讀這篇文章 獲得更多資訊。
1.import java.awt.Dimension;
2.import java.awt.Rectangle;
3.import java.awt.Robot;
4.import java.awt.Toolkit;
5.import java.awt.image.BufferedImage;
6.import javax.imageio.ImageIO;
7.import java.io.File;
8.
9…
10.
11.public void captureScreen(String fileName) throws Exception {
12.
13. Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
14. Rectangle screenRectangle = new Rectangle(screenSize);
15. Robot robot = new Robot();
16. BufferedImage image = robot.createScreenCapture(screenRectangle);
17. ImageIO.write(image, “png”, new File(fileName));
18.
19.}
20… -
列出檔案和目錄
1.File dir = new File(“directoryName”);
2. String[] children = dir.list();
3. if (children == null) {
4. // Either dir does not exist or is not a directory
5. } else {
6. for (int i=0; i < children.length; i++) {
7. // Get filename of file or directory
8. String filename = children[i];
9. }
10. }
11.
12. // It is also possible to filter the list of returned files.
13. // This example does not return any files that start with `.’.
14. FilenameFilter filter = new FilenameFilter() {
15. public boolean accept(File dir, String name) {
16. return !name.startsWith(".");
17. }
18. };
19. children = dir.list(filter);
20.
21. // The list of files can also be retrieved as File objects
22. File[] files = dir.listFiles();
23.
24. // This filter only returns directories
25. FileFilter fileFilter = new FileFilter() {
26. public boolean accept(File file) {
27. return file.isDirectory();
28. }
29. };
30. files = dir.listFiles(fileFilter); -
建立ZIP和JAR檔案
1.import java.util.zip.;
2.import java.io.;
3.
4.public class ZipIt {
5. public static void main(String args[]) throws IOException {
6. if (args.length < 2) {
7. System.err.println(“usage: java ZipIt Zip.zip file1 file2 file3”);
8. System.exit(-1);
9. }
10. File zipFile = new File(args[0]);
11. if (zipFile.exists()) {
12. System.err.println(“Zip file already exists, please try another”);
13. System.exit(-2);
14. }
15. FileOutputStream fos = new FileOutputStream(zipFile);
16. ZipOutputStream zos = new ZipOutputStream(fos);
17. int bytesRead;
18. byte[] buffer = new byte[1024];
19. CRC32 crc = new CRC32();
20. for (int i=1, n=args.length; i < n; i++) {
21. String name = args[i];
22. File file = new File(name);
23. if (!file.exists()) {
24. System.err.println("Skipping: " + name);
25. continue;
26. }
27. BufferedInputStream bis = new BufferedInputStream(
28. new FileInputStream(file));
29. crc.reset();
30. while ((bytesRead = bis.read(buffer)) != -1) {
31. crc.update(buffer, 0, bytesRead);
32. }
33. bis.close();
34. // Reset to beginning of input stream
35. bis = new BufferedInputStream(
36. new FileInputStream(file));
37. ZipEntry entry = new ZipEntry(name);
38. entry.setMethod(ZipEntry.STORED);
39. entry.setCompressedSize(file.length());
40. entry.setSize(file.length());
41. entry.setCrc(crc.getValue());
42. zos.putNextEntry(entry);
43. while ((bytesRead = bis.read(buffer)) != -1) {
44. zos.write(buffer, 0, bytesRead);
45. }
46. bis.close();
47. }
48. zos.close();
49. }
50.} -
解析/讀取XML 檔案
XML檔案
1.<?xml version="1.0"?>
2.
3.
4. John
5. B
6. 12
7.
8.
9. Mary
10. A
11. 11
12.
13.
14. Simon
15. A
16. 18
17.
18.
Java程式碼:
1.ackage net.viralpatel.java.xmlparser;
2.
3.import java.io.File;
4.import javax.xml.parsers.DocumentBuilder;
5.import javax.xml.parsers.DocumentBuilderFactory;
6.
7.import org.w3c.dom.Document;
8.import org.w3c.dom.Element;
9.import org.w3c.dom.Node;
10.import org.w3c.dom.NodeList;
11.
12.public class XMLParser {
13.
14. public void getAllUserNames(String fileName) {
15. try {
16. DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
17. DocumentBuilder db = dbf.newDocumentBuilder();
18. File file = new File(fileName);
19. if (file.exists()) {
20. Document doc = db.parse(file);
21. Element docEle = doc.getDocumentElement();
22.
23. // Print root element of the document
24. System.out.println(“Root element of the document: "
25. + docEle.getNodeName());
26.
27. NodeList studentList = docEle.getElementsByTagName(“student”);
28.
29. // Print total student elements in document
30. System.out
31. .println(“Total students: " + studentList.getLength());
32.
33. if (studentList != null && studentList.getLength() > 0) {
34. for (int i = 0; i < studentList.getLength(); i++) {
35.
36. Node node = studentList.item(i);
37.
38. if (node.getNodeType() == Node.ELEMENT_NODE) {
39.
40. System.out
41. .println(”=====================”);
42.
43. Element e = (Element) node;
44. NodeList nodeList = e.getElementsByTagName(“name”);
45. System.out.println("Name: "
46. + nodeList.item(0).getChildNodes().item(0)
47. .getNodeValue());
48.
49. nodeList = e.getElementsByTagName(“grade”);
50. System.out.println("Grade: "
51. + nodeList.item(0).getChildNodes().item(0)
52. .getNodeValue());
53.
54. nodeList = e.getElementsByTagName(“age”);
55. System.out.println("Age: "
56. + nodeList.item(0).getChildNodes().item(0)
57. .getNodeValue());
58. }
59. }
60. } else {
61. System.exit(1);
62. }
63. }
64. } catch (Exception e) {
65. System.out.println(e);
66. }
67. }
68. public static void main(String[] args) {
69.
70. XMLParser parser = new XMLParser();
71. parser.getAllUserNames(“c:\test.xml”);
72. }
73.}
17. 把 Array 轉換成 Map
1.import java.util.Map;
2.import org.apache.commons.lang.ArrayUtils;
3.
4.public class Main {
5.
6. public static void main(String[] args) {
7. String[][] countries = { { “United States”, “New York” }, { “United Kingdom”, “London” },
8. { “Netherland”, “Amsterdam” }, { “Japan”, “Tokyo” }, { “France”, “Paris” } };
9.
10. Map countryCapitals = ArrayUtils.toMap(countries);
11.
12. System.out.println("Capital of Japan is " + countryCapitals.get(“Japan”));
13. System.out.println("Capital of France is " + countryCapitals.get(“France”));
14. }
15.}
18. 傳送郵件
1.import javax.mail.;
2.import javax.mail.internet.;
3.import java.util.;
4.
5.public void postMail( String recipients[ ], String subject, String message , String from) throws MessagingException
6.{
7. boolean debug = false;
8.
9. //Set the host smtp address
10. Properties props = new Properties();
11. props.put(“mail.smtp.host”, “smtp.example.com”);
12.
13. // create some properties and get the default Session
14. Session session = Session.getDefaultInstance(props, null);
15. session.setDebug(debug);
16.
17. // create a message
18. Message msg = new MimeMessage(session);
19.
20. // set the from and to address
21. InternetAddress addressFrom = new InternetAddress(from);
22. msg.setFrom(addressFrom);
23.
24. InternetAddress[] addressTo = new InternetAddress[recipients.length];
25. for (int i = 0; i < recipients.length; i++)
26. {
27. addressTo[i] = new InternetAddress(recipients[i]);
28. }
29. msg.setRecipients(Message.RecipientType.TO, addressTo);
30.
31. // Optional : You can also set your custom headers in the Email if you Want
32. msg.addHeader(“MyHeaderName”, “myHeaderValue”);
33.
34. // Setting the Subject and Content Type
35. msg.setSubject(subject);
36. msg.setContent(message, “text/plain”);
37. Transport.send(msg);
38.}
19. 傳送代資料的HTTP 請求
1.import java.io.BufferedReader;
2.import java.io.InputStreamReader;
3.import java.net.URL;
4.
5.public class Main {
6. public static void main(String[] args) {
7. try {
8. URL my_url = new URL(“http://coolshell.cn/”);
9. BufferedReader br = new BufferedReader(new InputStreamReader(my_url.openStream()));
10. String strTemp = “”;
11. while(null != (strTemp = br.readLine())){
12. System.out.println(strTemp);
13. }
14. } catch (Exception ex) {
15. ex.printStackTrace();
16. }
17. }
18.}
20. 改變陣列的大小
1./**
2. Reallocates an array with a new size, and copies the contents
3.* of the old array to the new array.
4.* @param oldArray the old array, to be reallocated.
5.* @param newSize the new array size.
6.* @return A new array with the same contents.
7.*/
8.private static Object resizeArray (Object oldArray, int newSize) {
9. int oldSize = java.lang.reflect.Array.getLength(oldArray);
10. Class elementType = oldArray.getClass().getComponentType();
11. Object newArray = java.lang.reflect.Array.newInstance(
12. elementType,newSize);
13. int preserveLength = Math.min(oldSize,newSize);
14. if (preserveLength > 0)
15. System.arraycopy (oldArray,0,newArray,0,preserveLength);
16. return newArray;
17.}
18.
19.// Test routine for resizeArray().
20.public static void main (String[] args) {
21. int[] a = {1,2,3};
22. a = (int[])resizeArray(a,5);
23. a[3] = 4;
24. a[4] = 5;
25. for (int i=0; i<a.length; i++)
26. System.out.println (a[i]);
27.}
原文連結:http://coolshell.cn/articles/889.html