程序員花2小時總結:20個非常有用的Java程序片段

編程語言 Java 程序員 JSON 孝道的重要性 孝道的重要性 2017-09-24

下面是20個非常有用的Java程序片段,希望能對你有用。

  1. 字符串有整型的相互轉換

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

    這篇文章共享之前我仍是要引薦下我自個的Java群:633425005,不論你是小白仍是大牛,小編我都挺期待,不定期共享乾貨,包含我自個整理的一份2017最新的Java材料和零根底入門教程,期待初學和進階中的小夥伴。

  2. 向文件末尾添加內容

    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}
  3. 得到當前方法的名字

    1.String methodName = Thread.currentThread().getStackTrace()[1].getMethodName();
  4. 轉字符串到日期

    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 );
  5. 使用JDBC鏈接Oracle

    1.public class OracleJdbcTest 2.{ 3 String driverClass = "oracle.jdbc.driver.OracleDriver"; 45 Connection con; 67 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); 1516 con=DriverManager.getConnection(url, userName, password); 17 } 1819 public void fetch() throws SQLException, IOException 20 { 21 PreparedStatement ps = con.prepareStatement("select SYSDATE from dual"); 22 ResultSet rs = ps.executeQuery(); 2324 while (rs.next()) 25 { 26 // do the thing you do 27 } 28 rs.close(); 29 ps.close(); 30 } 3132 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());
  7. 使用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. try7. { 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. finally20. { 21. if ( inChannel != null ) 22. { 23. inChannel.close(); 24. } 25. if ( outChannel != null ) 26. { 27. outChannel.close(); 28. } 29. } 30. }
  8. 創建圖片的縮略圖

    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. 創建 JSON 格式的數據

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

    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; } }

    另一種實現

    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. 創建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文件

<?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");  } }

十七. 把 Array 轉換成 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.發送郵件

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.發送代數據的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.改變數組的大小

/**Reallocates an array with a new size, and copies the contentsof 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]); }

1、具有1-5工作經驗的,面對目前流行的技術不知從何下手,需要突破技術瓶頸的可以加群。秀出你驕傲,妹子入懷抱。

2、在公司待久了,過得很安逸,但跳槽時面試碰壁。需要在短時間內進修、跳槽拿高薪的可以加群。

3、如果沒有工作經驗,但基礎非常紮實,對java工作機制,常用設計思想,常用java開發框架掌握熟練的,可以加群。

4、覺得自己很牛B,一般需求都能搞定。但是所學的知識點沒有系統化,很難在技術領域繼續突破的可以加群。

5.這篇文章共享之前我仍是要引薦下我自個的Java群:633425005,不論你是小白仍是大牛,小編我都挺期待,不定期共享乾貨,包含我自個整理的一份2017最新的Java材料和零根底入門教程,期待初學和進階中的小夥伴。

6.阿里Java高級大牛直播講解知識點,分享知識,上面五大專題都是各位老師多年工作經驗的梳理和總結,帶著大家全面、科學地建立自己的技術體系和技術認知!

相關推薦

推薦中...