阿里P7整理20個非常有用的Java程序片段污茵,你知道嗎渠抹?

1蝙昙、字符串有整型的相互轉(zhuǎn)換

String a = String.valueOf(2);??//integer to numeric string??

int i = Integer.parseInt(a); //numeric string to an int

2闪萄、向文件末尾添加內(nèi)容

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、得到當(dāng)前方法的名字

String methodName = Thread.currentThread().getStackTrace()[1].getMethodName();

4奇颠、轉(zhuǎn)字符串到日期

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

或者是:

SimpleDateFormat format = new SimpleDateFormat( "dd.MM.yyyy" );??

Date date = format.parse( myString );

5败去、使用JDBC鏈接Oracle

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.util.Date utilDate = new java.util.Date();??

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

7烈拒、使用NIO進(jìn)行快速的文件拷貝

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)建圖片的縮略圖

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

import org.json.JSONObject;??

...??

...??

JSONObject json = new JSONObject();??

json.put("city", "Mumbai");??

json.put("country", "India");??

...??

String output = json.toString();??

...

10荆几、使用iText JAR生成PDF

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è)置

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 示例

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)

public enum SimpleSingleton {??

??INSTANCE;??

??public void doSomething() {??

??}??

}??

//Call the method from Singleton:??

SimpleSingleton.INSTANCE.doSomething();

13吨铸、抓屏程序

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行拢、列出文件和目錄

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文件

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文件

????John?

????B?

????12?


????Mary?

????A?

????11?


????Simon?

????A?

????18?

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?

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ā)送郵件

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 請求

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ù)組的大小

/**

* 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高架構(gòu)師诞吱、分布式架構(gòu)舟奠、高可擴(kuò)展、高性能房维、高并發(fā)沼瘫、性能優(yōu)化、Spring boot咙俩、Redis耿戚、ActiveMQ、Nginx阿趁、Mycat膜蛔、Netty、Jvm大型分布式項目實戰(zhàn)學(xué)習(xí)架構(gòu)師視頻免費獲取架構(gòu)群:854180697

群鏈接:加群鏈接

寫在最后:歡迎留言討論歌焦,私信“Java”或“架構(gòu)資料”有驚喜飞几!加關(guān)注,持續(xù)更新6榔病P寄!

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末纷铣,一起剝皮案震驚了整個濱河市卵史,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌搜立,老刑警劉巖以躯,帶你破解...
    沈念sama閱讀 218,546評論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異,居然都是意外死亡忧设,警方通過查閱死者的電腦和手機(jī)刁标,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,224評論 3 395
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來址晕,“玉大人膀懈,你說我怎么就攤上這事〗骼” “怎么了启搂?”我有些...
    開封第一講書人閱讀 164,911評論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長刘陶。 經(jīng)常有香客問我胳赌,道長,這世上最難降的妖魔是什么匙隔? 我笑而不...
    開封第一講書人閱讀 58,737評論 1 294
  • 正文 為了忘掉前任疑苫,我火速辦了婚禮,結(jié)果婚禮上纷责,老公的妹妹穿的比我還像新娘缀匕。我一直安慰自己,他們只是感情好碰逸,可當(dāng)我...
    茶點故事閱讀 67,753評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著阔加,像睡著了一般饵史。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上胜榔,一...
    開封第一講書人閱讀 51,598評論 1 305
  • 那天胳喷,我揣著相機(jī)與錄音,去河邊找鬼夭织。 笑死吭露,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的尊惰。 我是一名探鬼主播讲竿,決...
    沈念sama閱讀 40,338評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼弄屡!你這毒婦竟也來了题禀?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,249評論 0 276
  • 序言:老撾萬榮一對情侶失蹤膀捷,失蹤者是張志新(化名)和其女友劉穎迈嘹,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,696評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡秀仲,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,888評論 3 336
  • 正文 我和宋清朗相戀三年融痛,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片神僵。...
    茶點故事閱讀 40,013評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡雁刷,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出挑豌,到底是詐尸還是另有隱情安券,我是刑警寧澤,帶...
    沈念sama閱讀 35,731評論 5 346
  • 正文 年R本政府宣布氓英,位于F島的核電站侯勉,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏铝阐。R本人自食惡果不足惜址貌,卻給世界環(huán)境...
    茶點故事閱讀 41,348評論 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望徘键。 院中可真熱鬧练对,春花似錦、人聲如沸吹害。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,929評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽它呀。三九已至螺男,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間纵穿,已是汗流浹背下隧。 一陣腳步聲響...
    開封第一講書人閱讀 33,048評論 1 270
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留谓媒,地道東北人淆院。 一個月前我還...
    沈念sama閱讀 48,203評論 3 370
  • 正文 我出身青樓,卻偏偏與公主長得像句惯,于是被迫代替她去往敵國和親土辩。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,960評論 2 355

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

  • 【程序1】 題目:古典問題:有一對兔子抢野,從出生后第3個月起每個月都生一對兔子脯燃,小兔子長到第三個月后每個月又生一...
    阿里高級軟件架構(gòu)師閱讀 3,286評論 0 19
  • 【程序1】 題目:古典問題:有一對兔子,從出生后第3個月起每個月都生一對兔子蒙保,小兔子長到第三個月后每個月又生一對兔...
    開心的鑼鼓閱讀 3,320評論 0 9
  • 1. Java基礎(chǔ)部分 基礎(chǔ)部分的順序:基本語法辕棚,類相關(guān)的語法,內(nèi)部類的語法,繼承相關(guān)的語法逝嚎,異常的語法扁瓢,線程的語...
    子非魚_t_閱讀 31,638評論 18 399
  • 前天看了薛雯麗的作文,有些激動补君。我只想說一些對那些初中語文老師的敬意引几。 酒中考了很多好學(xué)生。酒中是重點中學(xué)挽铁,享有優(yōu)...
    行吟斯基閱讀 1,053評論 9 6
  • 是誰在落霞間燃燒了思念 留給黑夜無盡留戀 是誰慌亂了誰的年華 擊破了夢中那片狼藉 我知道 那是你夢中的壞笑 也不...
    講真故事的妹子閱讀 182評論 0 2