搜尋
首頁Javajava教程非常有用的java程式片段

非常有用的java程式片段

Nov 26, 2016 pm 01:35 PM
javajava程式

下面是非常有用的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

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 转成 sql.Date

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

   

7. 使用NIO进行快速的文件拷贝

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. 创建图片的缩略图

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 格式的数据

请先阅读这篇文章 了解一些细节,

并下面这个JAR 文件:json-rpc-1.0.jar (75 kb)

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 `.&#39;. 
  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"); 
    } 
}

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

  

陳述
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
如何將Maven或Gradle用於高級Java項目管理,構建自動化和依賴性解決方案?如何將Maven或Gradle用於高級Java項目管理,構建自動化和依賴性解決方案?Mar 17, 2025 pm 05:46 PM

本文討論了使用Maven和Gradle進行Java項目管理,構建自動化和依賴性解決方案,以比較其方法和優化策略。

如何使用適當的版本控制和依賴項管理創建和使用自定義Java庫(JAR文件)?如何使用適當的版本控制和依賴項管理創建和使用自定義Java庫(JAR文件)?Mar 17, 2025 pm 05:45 PM

本文使用Maven和Gradle之類的工具討論了具有適當的版本控制和依賴關係管理的自定義Java庫(JAR文件)的創建和使用。

如何使用咖啡因或Guava Cache等庫在Java應用程序中實現多層緩存?如何使用咖啡因或Guava Cache等庫在Java應用程序中實現多層緩存?Mar 17, 2025 pm 05:44 PM

本文討論了使用咖啡因和Guava緩存在Java中實施多層緩存以提高應用程序性能。它涵蓋設置,集成和績效優勢,以及配置和驅逐政策管理最佳PRA

如何將JPA(Java持久性API)用於具有高級功能(例如緩存和懶惰加載)的對象相關映射?如何將JPA(Java持久性API)用於具有高級功能(例如緩存和懶惰加載)的對象相關映射?Mar 17, 2025 pm 05:43 PM

本文討論了使用JPA進行對象相關映射,並具有高級功能,例如緩存和懶惰加載。它涵蓋了設置,實體映射和優化性能的最佳實踐,同時突出潛在的陷阱。[159個字符]

Java的類負載機制如何起作用,包括不同的類載荷及其委託模型?Java的類負載機制如何起作用,包括不同的類載荷及其委託模型?Mar 17, 2025 pm 05:35 PM

Java的類上載涉及使用帶有引導,擴展程序和應用程序類負載器的分層系統加載,鏈接和初始化類。父代授權模型確保首先加載核心類別,從而影響自定義類LOA

See all articles

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
3 週前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳圖形設置
3 週前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您聽不到任何人,如何修復音頻
3 週前By尊渡假赌尊渡假赌尊渡假赌
WWE 2K25:如何解鎖Myrise中的所有內容
3 週前By尊渡假赌尊渡假赌尊渡假赌

熱工具

mPDF

mPDF

mPDF是一個PHP庫,可以從UTF-8編碼的HTML產生PDF檔案。原作者Ian Back編寫mPDF以從他的網站上「即時」輸出PDF文件,並處理不同的語言。與原始腳本如HTML2FPDF相比,它的速度較慢,並且在使用Unicode字體時產生的檔案較大,但支援CSS樣式等,並進行了大量增強。支援幾乎所有語言,包括RTL(阿拉伯語和希伯來語)和CJK(中日韓)。支援嵌套的區塊級元素(如P、DIV),

DVWA

DVWA

Damn Vulnerable Web App (DVWA) 是一個PHP/MySQL的Web應用程序,非常容易受到攻擊。它的主要目標是成為安全專業人員在合法環境中測試自己的技能和工具的輔助工具,幫助Web開發人員更好地理解保護網路應用程式的過程,並幫助教師/學生在課堂環境中教授/學習Web應用程式安全性。 DVWA的目標是透過簡單直接的介面練習一些最常見的Web漏洞,難度各不相同。請注意,該軟體中

SecLists

SecLists

SecLists是最終安全測試人員的伙伴。它是一個包含各種類型清單的集合,這些清單在安全評估過程中經常使用,而且都在一個地方。 SecLists透過方便地提供安全測試人員可能需要的所有列表,幫助提高安全測試的效率和生產力。清單類型包括使用者名稱、密碼、URL、模糊測試有效載荷、敏感資料模式、Web shell等等。測試人員只需將此儲存庫拉到新的測試機上,他就可以存取所需的每種類型的清單。

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

MinGW - Minimalist GNU for Windows

MinGW - Minimalist GNU for Windows

這個專案正在遷移到osdn.net/projects/mingw的過程中,你可以繼續在那裡關注我們。 MinGW:GNU編譯器集合(GCC)的本機Windows移植版本,可自由分發的導入函式庫和用於建置本機Windows應用程式的頭檔;包括對MSVC執行時間的擴展,以支援C99功能。 MinGW的所有軟體都可以在64位元Windows平台上運作。