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

2021-03-02 程序猿

來自:酷 殼 - CoolShell

作者:陳皓 

連結:http://coolshell.cn/articles/889.html(點擊尾部閱讀原文前往)

下面是20個非常有用的Java程序片段,希望能對你有用。內容比較早,有些函數可能過時了,但是總體思路是不錯滴,供參考。

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

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

2、向文件末尾添加內容

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

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

4、轉字符串到日期

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



6、把 Java util.Date 轉成 sql.Date

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

7、使用NIO進行快速的文件拷貝


8、創建圖片的縮略圖



9、創建 JSON 格式的數據

請先閱讀這篇文章 了解一些細節,


並下面這個JAR 文件:json-rpc-1.0.jar (75 kb) http://viralpatel.net/blogs/download/json/json-rpc-1.0.jar

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

10、使用iText JAR生成PDF

閱讀這篇文章 了解更多細節


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


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

XML文件

 

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 轉換成 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 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]);     }plain

●本文編號2530,以後想閱讀這篇文章直接輸入2530即可。

●輸入m獲取文章目錄

Java編程

更多推薦18個技術類微信公眾號

涵蓋:程序人生、算法與數據結構、黑客技術與網絡安全、大數據技術、前端開發、Java、Python、Web開發、安卓開發、iOS開發、C/C++、.NET、Linux、資料庫、運維等。

相關焦點

  • java基礎之一:認識程序和java
    程序的概念:指令集合程式語言:寫程序的工具java:程式語言中的一種,簡單好學,功能強大。。。如何開發java安裝jdk,通過記事本編寫,然後進入DOS控制臺,用javac編譯,java執行。。。算了吧,還是用IDE工具比如eclipse/myeclipse,或者idea,自帶jdk我們編寫的不是程序,是源程序,會經過「替換」成程序,這個過程叫編譯;編譯後的叫程序。。。
  • 用記事本寫一個Java程序
    在D盤根目錄下新建一個test文件夾,並在該文件夾中新建文本文檔,重命名為HelloWorld.java後,用記事本方式打開,在其中編寫一段Java代碼
  • 啟動一個沒有 main 函數的 java 程序
    java 使用者最熟悉的方法, 每個 Java 應用程式都必須有且僅有一個 main 方法 這種說法。因此,為了保證JVM在任何情況下都可以訪問到main方法,就用 public修飾這個說法我個人理解是有點欠妥的,首先是 java 裡面有反射機制,訪問修飾符的存在在 JVM 規範裡面說的最多的是因為安全問題,並不是 JVM 能不能訪問的問題,因為 JVM 裡面有一百種方式去訪問一個 private。
  • 給Java程式設計師的20個鍊表面試題
    答案:http://www.java67.com/2016/07/how-to-reverse-singly-linked-list-in-java-example.html7. 如何找到單鍊表中的倒數第三個節點?
  • Java第一篇:Java程序入門
    入門Java程序編寫源程序在d:\day01 目錄下新建文本文件,完整的文件名修改為HelloWorld.java ,其中文件名為HelloWorld
  • GitHub上非常實用的40個開源JAVA項目
    GitHub:http://h5ip.cn/MFmO17.vdurmont/emoji-java:將emoji表情和Unicode互相轉換的庫(一顆賽艇)。GitHub:http://h5ip.cn/mEnz18.v5developer/maven-framework-project:使用Maven搭建了N個例子的大而全的工程。
  • java程序編譯後會產生什麼
    什麼是編譯   1、利用編譯程序從源語言編寫的源程序產生目標程序的過程。   2、用編譯程序產生目標程序的動作。 編譯就是把高級語言變成計算機可以識別的2進位語言,計算機只認識1和0,編譯程序把人們熟悉的語言換成2進位的。
  • JAVA入門:從什麼是JAVA到編寫第一個java程序只需看這一篇
    Java是一門面向對象程式語言,不僅吸收了C++語言的各種優點,還摒棄了C++裡難以理解的多繼承、指針等概念,因此Java語言具有功能強大和簡單易用兩個特徵。Java語言作為靜態面向對象程式語言的代表,極好地實現了面向對象理論,允許程式設計師以優雅的思維方式進行複雜的編程。
  • Java程序的編碼規範
    所有的程序開發手冊都包含了各種規則。一些習慣自由程序人員可能對這些規則很不適應,但是在多個開發人員共同寫作的情況下,這些規則是必需的。這不僅僅是為了開發效率來考慮,而且也是為了後期維護考慮。(這些規範並不是一定要絕對遵守,但是一定要讓程序有良好的可讀性)> Package 的命名Package 的名字應該都是由一個小寫單詞組成。> Class 的命名Class 的名字必須由大寫字母開頭而其他字母都小寫的單詞組成。
  • Java中加載資料庫驅動的方式有幾種?背後的原理是什麼?
    Driver接口先來了解下java.sql.Driver接口,java.sql.Driver是所有JDBC驅動程序需要實現的接口。這個接口是提供給資料庫廠商使用的,不同廠商實現該接口的類名是不同的,例如MySQL 8.x的JDBC驅動的類名是:com.mysql.cj.jdbc.Driver。
  • 幾點Java程序必須滿足的基本規則
    Java虛擬機就從這個main方法開始解釋執行,因此,main方法是Java程序的入口。至於main方法為何要採用這麼「複雜」的寫法,後面章節會有更詳細的解釋,讀者現在只能把這個方法死記下來。對於那些不包含main方法的類,也是有用的類。對於一個大型的Java程序而言,往往只需要一個入口,也就是只有一個類包含main方法,而其他類都是用於被main方法直接或間接調用的。
  • 【第11章:Java常用類庫】_國際化程序
    運行程序輸入對應中文就可以自動轉換成為ascii輸出。在語言包資源文件中配置的鍵值對中對於英文語言值兼容性不必說,但是對於中文語言值則可能會有亂碼等風險。那麼此時將轉碼之後的ascii編碼複製到中文資源文件上如:Message_zh_CN.properties:info=cn info\u4f60\u597d然後重新運行上面的java程序如:D:\>javac Hello.java D:\>java Hello中文:cn info
  • 18個 Java8 日期處理的實踐,太有用了!
    和java.util.Date不同,它只有日期,不包含時間。當你僅需要表示日期時就用這個類。,你還可以調用另一個有用的工廠方法LocalDate.of()創建任意日期, 該方法需要傳入年、月、日做參數,返回對應的LocalDate實例。
  • JAVA8——JAVA成長之路
    相反,每個接口都必須提供一個所謂的默認實現,這樣所有的接口實現者將會默認繼承它(如果有必要的話,可以覆蓋這個默認實現)。讓我們看看下面的例子:下面的一小段代碼片段把上面的默認方法與靜態方法黏合到一起。在JVM中,默認方法的實現是非常高效的,並且通過字節碼指令為方法調用提供了支持。
  • java中的持有對方引用是什麼意思?有什麼用嗎?
    持有對方引用比如 A類有: h、j、 k, 3種方法,B類有 h 1種方法,但我B類必須要用到 A 類的 k方法怎麼辦呢?那麼下面就要引入引用了!程序如下:先是不持有對方引用import java.awt.*;import java.awt.event.
  • 程序基礎:Java基礎知識一
    在上一篇文章中我們一起配置了Java的基本開發環境,今天我們就一起來創建一個小工程,並且老梁也和大家一起來回顧一部分Java的基礎知識,這些基礎知識有很多是通用的,就是這些知識基本上是不會因為程式語言的區別而有太大的變化,算是程序的基礎。
  • 5款新手常用的java編程工具,有你正在用的嗎?
    文:源碼時代新手如果想成為一名合格的java程式設計師工程師,不但要熟練使用各種框架,而且還有明白框架是如何實現的各種原理,例如像jvm虛擬機的原理,優化,熟練掌握jvm能讓你寫出性能更好的代碼,還有池技術,對象池,線程池等,目前人們對java編程的關注也越來越火熱,很多人對編程有很大的興趣,也想知道有哪些好用的java編程工具,接下來就為大家介紹幾款常用的相關編程工具
  • 藍橋杯軟體學院講堂:13道Java典型的Java小程序
    今天藍橋杯軟體學院鄭老師為大家分享13道Java典型的Java小程序。希望大家能夠喜歡:1、設計一個java程序,從鍵盤接收兩個整數,找出其中的較大的數。2、設計一個java程序,從鍵盤接收一個字符串,反序輸出。3、設計一個Java程序,判斷鍵盤輸入的一個年份是否為閏年。若是閏年列印「是」,否則列印「否」。
  • Effective java-Lambda使用
    Lambda 簡介近年來,由於函數程式語言快速發展,讓開發者愈發的感覺到編程的快感,但Java 這個擁有20年歷史的程式語言霸主,就顯的非常的笨重。為了能根據時代發展,java 8中引入了lambda表達式。促進了java的函數編程,大大提升了開發效率。
  • 跟我學java編程—Java while循環語句
    用記事本打開「LoopSample1.java」文件,輸入以下代碼:代碼結構分析程序功能主要是演示while循環語句的使用。程序聲明了兩個int類型的變量num和result,分別用來存儲數字和乘積。循環體中的第一個語句用num乘以10,將計算結果保存在變量result中。第二個語句輸出乘法表,循環體中的最後一個語句將num的值遞增1,來修改num的值。此處使用了單目自增運算符++,也可以編寫為num=num+1,來替代num++。程序中的num++非常重要,這條語句通過修改num的值來修改循環條件,直到num的值等於11,循環條件為假時退出循環。