20個非常有用的JAVA程序片段

下面是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();????

????}????

}???

3. 得到當前方法的名字

Java代碼

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進行快速的文件拷貝

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ù)

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

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 代理設置

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/HTML代碼

<?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代碼

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]);????

}??

  (全文完)

如果想學習Java工程化、高性能及分布式、深入淺出。性能調(diào)優(yōu)、Spring,MyBatis,Netty源碼分析的朋友可以加我的Java高級架構(gòu)進階群:180705916,群里有阿里大牛直播講解技術(shù),以及Java大型互聯(lián)網(wǎng)技術(shù)的視頻免費分享給大家

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關(guān)閱讀更多精彩內(nèi)容

  • 字符串有整型的相互轉(zhuǎn)換 向文件末尾添加內(nèi)容 得到當前方法的名字 轉(zhuǎn)字符串到日期 或者是: 使用JDBC鏈接Orac...
    jasonlu1208閱讀 254評論 0 3
  • 先收藏了,以后應該用的到。 下面是20個非常有用的Java程序片段,希望能對你有用。 1. 字符串有整型的相互轉(zhuǎn)換...
    尹興飛閱讀 206評論 0 0
  • 我喜歡看小說,尤為喜歡結(jié)局美滿的愛情小說。有小伙伴看我經(jīng)??葱≌f,便問我“小說有呢么好看么”,我說“好看吖” 也許...
    戀憶唯您閱讀 304評論 2 2
  • 海芬/文 春娥 溫柔美女的乳名 飛蛾 戀著那熾熱的烈火 內(nèi)心燃燒過 灼熱融化了靈魂 飄飄蕩蕩升騰 烈火中永生的魂魄...
    海語天籟閱讀 533評論 0 1
  • 陶大宇,風靡一時的80,90年代,作為老戲骨,肯定記憶猶新,下面帶大家一起回憶一下這個TVB的‘’師奶殺手‘’ ...
    大雁的文字閱讀 2,213評論 0 1

友情鏈接更多精彩內(nèi)容