【轉(zhuǎn)載】20個非常有用的Java程序片段 - 編程語言

1. 字符串有整型的相互轉(zhuǎn)換
Java代碼

String a = String.valueOf(2);   //integer to numeric string    
int i = Integer.parseInt(a); //numeric string to an int  

2. 向文件末尾添加內(nèi)容
Java代碼

BufferedWriter out = null;    
try {    
  out = new BufferedWriter(new FileWriter(”filename”, true));    
  out.write(”aString”);    
} catch (IOException e) {    
  // error processing code    
} finally {    
  if (out != null) {    
      out.close();    
  }    
}  

Java代碼

[size=medium][b]3. 得到當(dāng)前方法的名字[/b][/size]  
String methodName = Thread.currentThread().getStackTrace()[1].getMethodName();  

4. 轉(zhuǎn)字符串到日期
Java代碼

java.util.Date = java.text.DateFormat.getDateInstance().parse(date String);  

或者是:
Java代碼

SimpleDateFormat format = new SimpleDateFormat( "dd.MM.yyyy" );    
Date date = format.parse( myString );  

5. 使用JDBC鏈接Oracle
Java代碼

public class OracleJdbcTest    
{    
   String driverClass = "oracle.jdbc.driver.OracleDriver";    
 
   Connection con;    
 
   public void init(FileInputStream fs) throws ClassNotFoundException, SQLException, FileNotFoundException, IOException    
   {    
       Properties props = new Properties();    
       props.load(fs);    
       String url = props.getProperty("db.url");    
       String userName = props.getProperty("db.user");    
       String password = props.getProperty("db.password");    
       Class.forName(driverClass);    
 
       con=DriverManager.getConnection(url, userName, password);    
   }    
 
   public void fetch() throws SQLException, IOException    
   {    
       PreparedStatement ps = con.prepareStatement("select SYSDATE from dual");    
       ResultSet rs = ps.executeQuery();    
 
       while (rs.next())    
       {    
           // do the thing you do    
       }    
       rs.close();    
       ps.close();    
   }    
 
   public static void main(String[] args)    
   {    
       OracleJdbcTest test = new OracleJdbcTest();    
       test.init();    
       test.fetch();    
   }    
}  

6. 把 Java util.Date 轉(zhuǎn)成 sql.Date
Java代碼

java.util.Date utilDate = new java.util.Date();    
java.sql.Date sqlDate = new java.sql.Date(utilDate.getTime());  

7. 使用NIO進(jìn)行快速的文件拷貝
Java代碼

public static void fileCopy( File in, File out )    
           throws IOException    
   {    
       FileChannel inChannel = new FileInputStream( in ).getChannel();    
       FileChannel outChannel = new FileOutputStream( out ).getChannel();    
       try   
       {    
//          inChannel.transferTo(0, inChannel.size(), outChannel);      // original -- apparently has trouble copying large files on Windows    
 
           // magic number for Windows, 64Mb - 32Kb)    
           int maxCount = (64 * 1024 * 1024) - (32 * 1024);    
           long size = inChannel.size();    
           long position = 0;    
           while ( position < size )    
           {    
              position += inChannel.transferTo( position, maxCount, outChannel );    
           }    
       }    
       finally   
       {    
           if ( inChannel != null )    
           {    
              inChannel.close();    
           }    
           if ( outChannel != null )    
           {    
               outChannel.close();    
           }    
       }    
   }  

8. 創(chuàng)建圖片的縮略圖
Java代碼

private void createThumbnail(String filename, int thumbWidth, int thumbHeight, int quality, String outFilename)    
       throws InterruptedException, FileNotFoundException, IOException    
   {    
       // load image from filename    
       Image image = Toolkit.getDefaultToolkit().getImage(filename);    
       MediaTracker mediaTracker = new MediaTracker(new Container());    
       mediaTracker.addImage(image, 0);    
       mediaTracker.waitForID(0);    
       // use this to test for errors at this point: System.out.println(mediaTracker.isErrorAny());    
 
       // determine thumbnail size from WIDTH and HEIGHT    
       double thumbRatio = (double)thumbWidth / (double)thumbHeight;    
       int imageWidth = image.getWidth(null);    
       int imageHeight = image.getHeight(null);    
       double imageRatio = (double)imageWidth / (double)imageHeight;    
       if (thumbRatio < imageRatio) {    
           thumbHeight = (int)(thumbWidth / imageRatio);    
       } else {    
           thumbWidth = (int)(thumbHeight * imageRatio);    
       }    
 
       // draw original image to thumbnail image object and    
       // scale it to the new size on-the-fly    
       BufferedImage thumbImage = new BufferedImage(thumbWidth, thumbHeight, BufferedImage.TYPE_INT_RGB);    
       Graphics2D graphics2D = thumbImage.createGraphics();    
       graphics2D.setRenderingHint(RenderingHints.KEY_INTERPOLATION, RenderingHints.VALUE_INTERPOLATION_BILINEAR);    
       graphics2D.drawImage(image, 0, 0, thumbWidth, thumbHeight, null);    
 
       // save thumbnail image to outFilename    
       BufferedOutputStream out = new BufferedOutputStream(new FileOutputStream(outFilename));    
       JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(out);    
       JPEGEncodeParam param = encoder.getDefaultJPEGEncodeParam(thumbImage);    
       quality = Math.max(0, Math.min(quality, 100));    
       param.setQuality((float)quality / 100.0f, false);    
       encoder.setJPEGEncodeParam(param);    
       encoder.encode(thumbImage);    
       out.close();    
   }  

9. 創(chuàng)建 JSON 格式的數(shù)據(jù) 請先閱讀這篇文章 了解一些細(xì)節(jié)妹卿, 并下面這個JAR 文件:json-rpc-1.0.jar (75 kb)
Java代碼

import org.json.JSONObject;    
...    
...    
JSONObject json = new JSONObject();    
json.put("city", "Mumbai");    
json.put("country", "India");    
...    
String output = json.toString();    
...  

10. 使用iText JAR生成PDF 閱讀這篇文章 了解更多細(xì)節(jié)
Java代碼

import java.io.File;    
import java.io.FileOutputStream;    
import java.io.OutputStream;    
import java.util.Date;    
 
import com.lowagie.text.Document;    
import com.lowagie.text.Paragraph;    
import com.lowagie.text.pdf.PdfWriter;    
 
public class GeneratePDF {    
 
   public static void main(String[] args) {    
       try {    
           OutputStream file = new FileOutputStream(new File("C:\\Test.pdf"));    
 
           Document document = new Document();    
           PdfWriter.getInstance(document, file);    
           document.open();    
           document.add(new Paragraph("Hello Kiran"));    
           document.add(new Paragraph(new Date().toString()));    
 
           document.close();    
           file.close();    
 
       } catch (Exception e) {    
 
           e.printStackTrace();    
       }    
   }    
}  

11. HTTP 代理設(shè)置 閱讀這篇 文章 了解更多細(xì)節(jié)。
Java代碼

System.getProperties().put("http.proxyHost", "someProxyURL");    
System.getProperties().put("http.proxyPort", "someProxyPort");    
System.getProperties().put("http.proxyUser", "someUserName");    
System.getProperties().put("http.proxyPassword", "somePassword");  

12. 單實例Singleton 示例 請先閱讀這篇文章 了解更多信息
Java代碼

public class SimpleSingleton {    
   private static SimpleSingleton singleInstance =  new SimpleSingleton();    
 
   //Marking default constructor private    
   //to avoid direct instantiation.    
   private SimpleSingleton() {    
   }    
 
   //Get instance for class SimpleSingleton    
   public static SimpleSingleton getInstance() {    
 
       return singleInstance;    
   }    
} 

另一種實現(xiàn)
Java代碼

public enum SimpleSingleton {    
   INSTANCE;    
   public void doSomething() {    
   }    
}    

//Call the method from Singleton:    
SimpleSingleton.INSTANCE.doSomething();  

13. 抓屏程序 閱讀這篇文章 獲得更多信息睡蟋。
Java代碼

import java.awt.Dimension;    
import java.awt.Rectangle;    
import java.awt.Robot;    
import java.awt.Toolkit;    
import java.awt.image.BufferedImage;    
import javax.imageio.ImageIO;    
import java.io.File;    
 
...    
 
public void captureScreen(String fileName) throws Exception {    
 
  Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();    
  Rectangle screenRectangle = new Rectangle(screenSize);    
  Robot robot = new Robot();    
  BufferedImage image = robot.createScreenCapture(screenRectangle);    
  ImageIO.write(image, "png", new File(fileName));    
 
}    
...  

14. 列出文件和目錄
Java代碼

File dir = new File("directoryName");    
String[] children = dir.list();    
if (children == null) {    
   // Either dir does not exist or is not a directory    
} else {    
   for (int i=0; i < children.length; i++) {    
       // Get filename of file or directory    
       String filename = children[i];    
   }    
}    

// It is also possible to filter the list of returned files.    
// This example does not return any files that start with `.'.    
FilenameFilter filter = new FilenameFilter() {    
   public boolean accept(File dir, String name) {    
       return !name.startsWith(".");    
   }    
};    
children = dir.list(filter);    

// The list of files can also be retrieved as File objects    
File[] files = dir.listFiles();    

// This filter only returns directories    
FileFilter fileFilter = new FileFilter() {    
   public boolean accept(File file) {    
       return file.isDirectory();    
   }    
};    
files = dir.listFiles(fileFilter);  

15. 創(chuàng)建ZIP和JAR文件
Java代碼

import java.util.zip.*;    
import java.io.*;    

public class ZipIt {    
 public static void main(String args[]) throws IOException {    
     if (args.length < 2) {    
         System.err.println("usage: java ZipIt Zip.zip file1 file2 file3");    
         System.exit(-1);    
     }    
     File zipFile = new File(args[0]);    
     if (zipFile.exists()) {    
         System.err.println("Zip file already exists, please try another");    
         System.exit(-2);    
     }    
     FileOutputStream fos = new FileOutputStream(zipFile);    
     ZipOutputStream zos = new ZipOutputStream(fos);    
     int bytesRead;    
     byte[] buffer = new byte[1024];    
     CRC32 crc = new CRC32();    
     for (int i=1, n=args.length; i < n; i++) {    
         String name = args[i];    
         File file = new File(name);    
         if (!file.exists()) {    
             System.err.println("Skipping: " + name);    
             continue;    
         }    
         BufferedInputStream bis = new BufferedInputStream(    
             new FileInputStream(file));    
         crc.reset();    
         while ((bytesRead = bis.read(buffer)) != -1) {    
             crc.update(buffer, 0, bytesRead);    
         }    
         bis.close();    
         // Reset to beginning of input stream    
         bis = new BufferedInputStream(    
             new FileInputStream(file));    
         ZipEntry entry = new ZipEntry(name);    
         entry.setMethod(ZipEntry.STORED);    
         entry.setCompressedSize(file.length());    
         entry.setSize(file.length());    
         entry.setCrc(crc.getValue());    
         zos.putNextEntry(entry);    
         while ((bytesRead = bis.read(buffer)) != -1) {    
             zos.write(buffer, 0, bytesRead);    
         }    
         bis.close();    
     }    
     zos.close();    
 }    
}  

16. 解析/讀取XML 文件 XML文件
代碼

<?xml version="1.0"?>   
<students>   
 <student>   
     <name>John</name>   
     <grade>B</grade>   
     <age>12</age>   
 </student>   
 <student>   
     <name>Mary</name>   
     <grade>A</grade>   
     <age>11</age>   
 </student>   
 <student>   
     <name>Simon</name>   
     <grade>A</grade>   
     <age>18</age>   
 </student>   
</students>  

Java代碼

package net.viralpatel.java.xmlparser;    

import java.io.File;    
import javax.xml.parsers.DocumentBuilder;    
import javax.xml.parsers.DocumentBuilderFactory;    

import org.w3c.dom.Document;    
import org.w3c.dom.Element;    
import org.w3c.dom.Node;    
import org.w3c.dom.NodeList;    

public class XMLParser {    

 public void getAllUserNames(String fileName) {    
     try {    
         DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();    
         DocumentBuilder db = dbf.newDocumentBuilder();    
         File file = new File(fileName);    
         if (file.exists()) {    
             Document doc = db.parse(file);    
             Element docEle = doc.getDocumentElement();    

             // Print root element of the document    
             System.out.println("Root element of the document: "   
                     + docEle.getNodeName());    

             NodeList studentList = docEle.getElementsByTagName("student");    

             // Print total student elements in document    
             System.out    
                     .println("Total students: " + studentList.getLength());    

             if (studentList != null && studentList.getLength() > 0) {    
                 for (int i = 0; i < studentList.getLength(); i++) {    

                     Node node = studentList.item(i);    

                     if (node.getNodeType() == Node.ELEMENT_NODE) {    

                         System.out    
                                 .println("=====================");    

                         Element e = (Element) node;    
                         NodeList nodeList = e.getElementsByTagName("name");    
                         System.out.println("Name: "   
                                 + nodeList.item(0).getChildNodes().item(0)    
                                         .getNodeValue());    

                         nodeList = e.getElementsByTagName("grade");    
                         System.out.println("Grade: "   
                                 + nodeList.item(0).getChildNodes().item(0)    
                                         .getNodeValue());    

                         nodeList = e.getElementsByTagName("age");    
                         System.out.println("Age: "   
                                 + nodeList.item(0).getChildNodes().item(0)    
                                         .getNodeValue());    
                     }    
                 }    
             } else {    
                 System.exit(1);    
             }    
         }    
     } catch (Exception e) {    
         System.out.println(e);    
     }    
 }    
 public static void main(String[] args) {    

     XMLParser parser = new XMLParser();    
     parser.getAllUserNames("c:\\test.xml");    
 }    
}  

17. 把 Array 轉(zhuǎn)換成 Map
Java代碼

import java.util.Map;    
import org.apache.commons.lang.ArrayUtils;    

public class Main {    

public static void main(String[] args) {    
 String[][] countries = { { "United States", "New York" }, { "United Kingdom", "London" },    
     { "Netherland", "Amsterdam" }, { "Japan", "Tokyo" }, { "France", "Paris" } };    

 Map countryCapitals = ArrayUtils.toMap(countries);    

 System.out.println("Capital of Japan is " + countryCapitals.get("Japan"));    
 System.out.println("Capital of France is " + countryCapitals.get("France"));    
}    
}  

18. 發(fā)送郵件
Java代碼

import javax.mail.*;    
import javax.mail.internet.*;    
import java.util.*;    

public void postMail( String recipients[ ], String subject, String message , String from) throws MessagingException    
{    
 boolean debug = false;    

  //Set the host smtp address    
  Properties props = new Properties();    
  props.put("mail.smtp.host", "smtp.example.com");    

 // create some properties and get the default Session    
 Session session = Session.getDefaultInstance(props, null);    
 session.setDebug(debug);    

 // create a message    
 Message msg = new MimeMessage(session);    

 // set the from and to address    
 InternetAddress addressFrom = new InternetAddress(from);    
 msg.setFrom(addressFrom);    

 InternetAddress[] addressTo = new InternetAddress[recipients.length];    
 for (int i = 0; i < recipients.length; i++)    
 {    
     addressTo[i] = new InternetAddress(recipients[i]);    
 }    
 msg.setRecipients(Message.RecipientType.TO, addressTo);    

 // Optional : You can also set your custom headers in the Email if you Want    
 msg.addHeader("MyHeaderName", "myHeaderValue");    

 // Setting the Subject and Content Type    
 msg.setSubject(subject);    
 msg.setContent(message, "text/plain");    
 Transport.send(msg);    
}  

19. 發(fā)送代數(shù)據(jù)的HTTP 請求
Java代碼

import java.io.BufferedReader;    
import java.io.InputStreamReader;    
import java.net.URL;    

public class Main {    
 public static void main(String[] args)  {    
     try {    
         URL my_url = new URL("http://coolshell.cn/");    
         BufferedReader br = new BufferedReader(new InputStreamReader(my_url.openStream()));    
         String strTemp = "";    
         while(null != (strTemp = br.readLine())){    
         System.out.println(strTemp);    
     }    
     } catch (Exception ex) {    
         ex.printStackTrace();    
     }    
 }    
}  

20. 改變數(shù)組的大小
Java代碼

/**  
* Reallocates an array with a new size, and copies the contents  
* of the old array to the new array.  
* @param oldArray  the old array, to be reallocated.  
* @param newSize   the new array size.  
* @return          A new array with the same contents.  
*/   
private static Object resizeArray (Object oldArray, int newSize) {    
int oldSize = java.lang.reflect.Array.getLength(oldArray);    
Class elementType = oldArray.getClass().getComponentType();    
Object newArray = java.lang.reflect.Array.newInstance(    
      elementType,newSize);    
int preserveLength = Math.min(oldSize,newSize);    
if (preserveLength > 0)    
   System.arraycopy (oldArray,0,newArray,0,preserveLength);    
return newArray;    
}    

// Test routine for resizeArray().    
public static void main (String[] args) {    
int[] a = {1,2,3};    
a = (int[])resizeArray(a,5);    
a[3] = 4;    
a[4] = 5;    
for (int i=0; i<a.length; i++)    
   System.out.println (a[i]);    
}  

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子壤躲,更是在濱河造成了極大的恐慌骂束,老刑警劉巖咪奖,帶你破解...
    沈念sama閱讀 221,820評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異治筒,居然都是意外死亡屉栓,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,648評論 3 399
  • 文/潘曉璐 我一進(jìn)店門耸袜,熙熙樓的掌柜王于貴愁眉苦臉地迎上來友多,“玉大人,你說我怎么就攤上這事堤框∮蚶模” “怎么了?”我有些...
    開封第一講書人閱讀 168,324評論 0 360
  • 文/不壞的土叔 我叫張陵蜈抓,是天一觀的道長启绰。 經(jīng)常有香客問我,道長沟使,這世上最難降的妖魔是什么委可? 我笑而不...
    開封第一講書人閱讀 59,714評論 1 297
  • 正文 為了忘掉前任,我火速辦了婚禮腊嗡,結(jié)果婚禮上着倾,老公的妹妹穿的比我還像新娘。我一直安慰自己叽唱,他們只是感情好屈呕,可當(dāng)我...
    茶點故事閱讀 68,724評論 6 397
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著棺亭,像睡著了一般虎眨。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,328評論 1 310
  • 那天嗽桩,我揣著相機(jī)與錄音岳守,去河邊找鬼。 笑死碌冶,一個胖子當(dāng)著我的面吹牛湿痢,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播扑庞,決...
    沈念sama閱讀 40,897評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼譬重,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了罐氨?” 一聲冷哼從身側(cè)響起臀规,我...
    開封第一講書人閱讀 39,804評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎栅隐,沒想到半個月后塔嬉,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,345評論 1 318
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡租悄,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,431評論 3 340
  • 正文 我和宋清朗相戀三年谨究,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片泣棋。...
    茶點故事閱讀 40,561評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡胶哲,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出外傅,到底是詐尸還是另有隱情纪吮,我是刑警寧澤,帶...
    沈念sama閱讀 36,238評論 5 350
  • 正文 年R本政府宣布萎胰,位于F島的核電站碾盟,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏技竟。R本人自食惡果不足惜冰肴,卻給世界環(huán)境...
    茶點故事閱讀 41,928評論 3 334
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望榔组。 院中可真熱鬧熙尉,春花似錦、人聲如沸搓扯。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,417評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽锨推。三九已至铅歼,卻和暖如春公壤,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背椎椰。 一陣腳步聲響...
    開封第一講書人閱讀 33,528評論 1 272
  • 我被黑心中介騙來泰國打工厦幅, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人慨飘。 一個月前我還...
    沈念sama閱讀 48,983評論 3 376
  • 正文 我出身青樓确憨,卻偏偏與公主長得像,于是被迫代替她去往敵國和親瓤的。 傳聞我的和親對象是個殘疾皇子休弃,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,573評論 2 359

推薦閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 172,297評論 25 707
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn)堤瘤,斷路器玫芦,智...
    卡卡羅2017閱讀 134,702評論 18 139
  • 下面是20個非常有用的Java程序片段,希望能對你有用本辐。 1. 字符串有整型的相互轉(zhuǎn)換 2. 向文件末尾添加內(nèi)容 ...
    a9b854aded01閱讀 156評論 0 1
  • doing
    踏莎行hyx閱讀 130評論 0 1
  • 如果你有了放棄的念頭 愛人,生活甚至生命 如同秋風(fēng)不回頭 也似水流涓無休 你會如何抉擇 若是我 便要那沾濕的衣袖兜...
    精分拉塔爾閱讀 265評論 0 3