20个经典的Java应用

下面是20个非常有用的Java程序片段,希望能对你有用。
1. 字符串有整型的相互转换
  
[java]
  1. Java代码
  2. String a = String.valueOf(2); 或者 String a=2+""; //integer to numeric string
  3. int i = Integer.parseInt(a); //numeric string to an int
2. 向文件末尾添加内容
  
[java]
  1. Java代码
  2. BufferedWriter out = null;
  3.  try {
  4.   out = new BufferedWriter(new FileWriter(”filename”, true));
  5.   out.write(”aString”);
  6.  } catch (IOException e) {
  7.   // error processing code
  8.  } finally {
  9. if (out != null) {
  10.  out.close();
  11.  }
  12. }
3. 得到当前方法的名字
  
[java]
  1. Java代码
  2. String methodName = Thread.currentThread().getStackTrace()[1].getMethodName();
4. 转字符串到日期
  
[java]
  1. Java代码
  2. java.util.Date = java.text.DateFormat.getDateInstance().parse(date String);
或者是:
  
[java]
  1. SimpleDateFormat format = new SimpleDateFormat( "dd.MM.yyyy" );
  2. Date date = format.parse( myString );
5. 使用JDBC链接Oracle
  
[java]
  1. Java代码
  2. public class OracleJdbcTest{
  3.  String driverClass = "oracle.jdbc.driver.OracleDriver";
  4.  Connection con;
  5.  public void init(FileInputStream fs) throws ClassNotFoundException, SQLException, FileNotFoundException, IOException{
  6.    Properties props = new Properties();
  7.    props.load(fs);
  8.    String url = props.getProperty("db.url");
  9.    String userName = props.getProperty("db.user");
  10.    String password = props.getProperty("db.password");
  11.    Class.forName(driverClass);
  12.    con=DriverManager.getConnection(url, userName, password);
  13.  }
  14.  public void fetch() throws SQLException, IOException{
  15.    PreparedStatement ps = con.prepareStatement("select SYSDATE from dual");
  16.    ResultSet rs = ps.executeQuery();
  17.    while (rs.next()){
  18.   // do the thing you do
  19.   }
  20.    rs.close();
  21.    ps.close();
  22. }
  23. public static void main(String[] args){
  24.   OracleJdbcTest test = new OracleJdbcTest();
  25.   test.init();
  26.   test.fetch();
  27.   }
  28. }
6. 把 Java util.Date 转成 sql.Date
  
[java]
  1. Java代码
  2. java.util.Date utilDate = new java.util.Date();
  3. java.sql.Date sqlDate = new java.sql.Date(utilDate.getTime());
7. 使用NIO进行快速的文件拷贝
  
[java]
  1. Java代码
  2. public static void fileCopy( File in, File out )throws IOException{
  3.  FileChannel inChannel = new FileInputStream( in ).getChannel();
  4.  FileChannel outChannel = new FileOutputStream( out ).getChannel();
  5.  try{
  6.   // inChannel.transferTo(0, inChannel.size(), outChannel); // original -- apparently has trouble copying large files on Windows
  7.   // magic number for Windows, 64Mb - 32Kb)
  8.   int maxCount = (64 * 1024 * 1024) - (32 * 1024);
  9.    long size = inChannel.size();
  10.    long position = 0;
  11.    while ( position < size ){
  12.    position += inChannel.transferTo( position, maxCount, outChannel );
  13.    }
  14.  }finally{
  15.   if ( inChannel != null ){
  16.   inChannel.close();
  17.   }
  18.   if ( outChannel != null ){
  19.   outChannel.close();
  20.   }
  21. }
  22. }
8. 创建图片的缩略图
 
[java]
  1. Java代码
  2. private void createThumbnail(String filename, int thumbWidth, int thumbHeight, int quality, String outFilename)
  3.   throws InterruptedException, FileNotFoundException, IOException
  4.   {
  5.   // load image from filename
  6.   Image image = Toolkit.getDefaultToolkit().getImage(filename);
  7.   MediaTracker mediaTracker = new MediaTracker(new Container());
  8.   mediaTracker.addImage(image, 0);
  9.   mediaTracker.waitForID(0);
  10.   // use this to test for errors at this point: System.out.println(mediaTracker.isErrorAny());
  11.   // determine thumbnail size from WIDTH and HEIGHT
  12.   double thumbRatio = (double)thumbWidth / (double)thumbHeight;
  13.   int imageWidth = image.getWidth(null);
  14.   int imageHeight = image.getHeight(null);
  15.   double imageRatio = (double)imageWidth / (double)imageHeight;
  16.   if (thumbRatio < imageRatio) {
  17.   thumbHeight = (int)(thumbWidth / imageRatio);
  18.   } else {
  19.   thumbWidth = (int)(thumbHeight * imageRatio);
  20.   }
  21. // draw original image to thumbnail image object and
  22.   // scale it to the new size on-the-fly
  23.   BufferedImage thumbImage = new BufferedImage(thumbWidth, thumbHeight, BufferedImage.TYPE_INT_RGB);
  24.   Graphics2D graphics2D = thumbImage.createGraphics();
  25.   graphics2D.setRenderingHint(RenderingHints.KEY_INTERPOLATION, RenderingHints.VALUE_INTERPOLATION_BILINEAR);
  26.   graphics2D.drawImage(image, 0, 0, thumbWidth, thumbHeight, null);
  27.   // save thumbnail image to outFilename
  28.   BufferedOutputStream out = new BufferedOutputStream(new FileOutputStream(outFilename));
  29.   JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(out);
  30.   JPEGEncodeParam param = encoder.getDefaultJPEGEncodeParam(thumbImage);
  31.   quality = Math.max(0, Math.min(quality, 100));
  32.   param.setQuality((float)quality / 100.0f, false);
  33.   encoder.setJPEGEncodeParam(param);
  34.   encoder.encode(thumbImage);
  35.   out.close();
  36.   }
9. 创建 JSON 格式的数据
  
[java]
  1. Java代码
  2.   请先阅读这篇文章 了解一些细节,
  3.   并下面这个JAR 文件:json-rpc-1.0.jar (75 kb)
  4.   import org.json.JSONObject;
  5.   ...
  6.   ...
  7.   JSONObject json = new JSONObject();
  8.   json.put("city", "Mumbai");
  9.   json.put("country", "India");
  10.   ...
  11.   String output = json.toString();
  12.   ...
10. 使用iText JAR生成PDF
 
[java]
  1. Java代码
  2.   阅读这篇文章 了解更多细节
  3.   import java.io.File;
  4.   import java.io.FileOutputStream;
  5.   import java.io.OutputStream;
  6.   import java.util.Date;
  7.   import com.lowagie.text.Document;
  8.   import com.lowagie.text.Paragraph;
  9.   import com.lowagie.text.pdf.PdfWriter;
  10.   public class GeneratePDF {
  11.   public static void main(String[] args) {
  12.   try {
  13.   OutputStream file = new FileOutputStream(new File("C:\\Test.pdf"));
  14.   Document document = new Document();
  15.   PdfWriter.getInstance(document, file);
  16.   document.open();
  17.   document.add(new Paragraph("Hello Kiran"));
  18.   document.add(new Paragraph(new Date().toString()));
  19.   document.close();
  20.   file.close();
  21.   } catch (Exception e) {
  22.   e.printStackTrace();
  23.   }
  24.   }
  25.   }
11. HTTP 代理设置
 
[java]
  1.  Java代码
  2.   阅读这篇 文章 了解更多细节。
  3.   System.getProperties().put("http.proxyHost", "someProxyURL");
  4.   System.getProperties().put("http.proxyPort", "someProxyPort");
  5.   System.getProperties().put("http.proxyUser", "someUserName");
  6.   System.getProperties().put("http.proxyPassword", "somePassword");
 
12. 单实例Singleton 示例
  
[java]
  1. Java代码
  2.   请先阅读这篇文章 了解更多信息
  3.   public class SimpleSingleton {
  4.   private static SimpleSingleton singleInstance = new SimpleSingleton();
  5.   //Marking default constructor private
  6.   //to avoid direct instantiation.
  7.   private SimpleSingleton() {
  8.   }
  9.   //Get instance for class SimpleSingleton
  10.   public static SimpleSingleton getInstance() {
  11.   return singleInstance;
  12.   }
  13.   }
  14.   另一种实现
  15.   public enum SimpleSingleton {
  16.   INSTANCE;
  17.   public void doSomething() {
  18.   }
  19.   }
  20.   //Call the method from Singleton:
  21.   SimpleSingleton.INSTANCE.doSomething();
13. 抓屏程序
  
[java]
  1. Java代码
  2.   阅读这篇文章 获得更多信息。
  3.   import java.awt.Dimension;
  4.   import java.awt.Rectangle;
  5.   import java.awt.Robot;
  6.   import java.awt.Toolkit;
  7.   import java.awt.image.BufferedImage;
  8.   import javax.imageio.ImageIO;
  9.   import java.io.File;
  10.   ...
  11.   public void captureScreen(String fileName) throws Exception {
  12.   Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
  13.   Rectangle screenRectangle = new Rectangle(screenSize);
  14.   Robot robot = new Robot();
  15.   BufferedImage image = robot.createScreenCapture(screenRectangle);
  16.   ImageIO.write(image, "png", new File(fileName));
  17.   }
  18.   ...
  19.   阅读这篇文章 获得更多信息。
  20.   import java.awt.Dimension;
  21.   import java.awt.Rectangle;
  22.   import java.awt.Robot;
  23.   import java.awt.Toolkit;
  24.   import java.awt.image.BufferedImage;
  25.   import javax.imageio.ImageIO;
  26.   import java.io.File;
  27.   ...
  28.   public void captureScreen(String fileName) throws Exception {
  29.   Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
  30.   Rectangle screenRectangle = new Rectangle(screenSize);
  31.   Robot robot = new Robot();
  32.   BufferedImage image = robot.createScreenCapture(screenRectangle);
  33.   ImageIO.write(image, "png", new File(fileName));
  34.   }
14. 列出文件和目录
  
[java]
  1. Java代码
  2.   File dir = new File("directoryName");
  3.   String[] children = dir.list();
  4.   if (children == null) {
  5.   // Either dir does not exist or is not a directory
  6.   } else {
  7.   for (int i=0; i < children.length; i++) {
  8.   // Get filename of file or directory
  9.   String filename = children[i];
  10.   }
  11.   }
  12.   // It is also possible to filter the list of returned files.
  13.   // This example does not return any files that start with `.'.
  14.   FilenameFilter filter = new FilenameFilter() {
  15.   public boolean accept(File dir, String name) {
  16.   return !name.startsWith(".");
  17.   }
  18.   };
  19.   children = dir.list(filter);
  20.   // The list of files can also be retrieved as File objects
  21.   File[] files = dir.listFiles();
  22.   // This filter only returns directories
  23.   FileFilter fileFilter = new FileFilter() {
  24.   public boolean accept(File file) {
  25.   return file.isDirectory();
  26.   }
  27.   };
  28.   files = dir.listFiles(fileFilter);
15. 创建ZIP和JAR文件
 
[java]
  1.  Java代码
  2.   import java.util.zip.*;
  3.   import java.io.*;
  4.   public class ZipIt {
  5.   public static void main(String args[]) throws IOException {
  6.   if (args.length < 2) {
  7.   System.err.println("usage: java ZipIt Zip.zip file1 file2 file3");
  8.   System.exit(-1);
  9.   }
  10.   File zipFile = new File(args[0]);
  11.   if (zipFile.exists()) {
  12.   System.err.println("Zip file already exists, please try another");
  13.   System.exit(-2);
  14.   }
  15.   FileOutputStream fos = new FileOutputStream(zipFile);
  16.   ZipOutputStream zos = new ZipOutputStream(fos);
  17.   int bytesRead;
  18.   byte[] buffer = new byte[1024];
  19.   CRC32 crc = new CRC32();
  20.   for (int i=1, n=args.length; i < n; i++) {
  21.   String name = args[i];
  22.   File file = new File(name);
  23.   if (!file.exists()) {
  24.   System.err.println("Skipping: " + name);
  25.   continue;
  26.   }
  27.   BufferedInputStream bis = new BufferedInputStream(
  28.   new FileInputStream(file));
  29.   crc.reset();
  30.   while ((bytesRead = bis.read(buffer)) != -1) {
  31.   crc.update(buffer, 0, bytesRead);
  32.   }
  33. bis.close();
  34.   // Reset to beginning of input stream
  35.   bis = new BufferedInputStream(
  36.   new FileInputStream(file));
  37.   ZipEntry entry = new ZipEntry(name);
  38.   entry.setMethod(ZipEntry.STORED);
  39.   entry.setCompressedSize(file.length());
  40.   entry.setSize(file.length());
  41.   entry.setCrc(crc.getValue());
  42.   zos.putNextEntry(entry);
  43.   while ((bytesRead = bis.read(buffer)) != -1) {
  44.   zos.write(buffer, 0, bytesRead);
  45.   }
  46.   bis.close();
  47.   }
  48.   zos.close();
  49.   }
  50.   }
16. 解析/读取XML 文件
  
[java]
  1. Java代码
  2.   XML文件
  3.   <?xml version="1.0"?>
  4.   <students>
  5.   <student>
  6.   <name>John</name>
  7.   <grade>B</grade>
  8.   <age>12</age>
  9.   </student>
  10.   <student>
  11.   <name>Mary</name>
  12.   <grade>A</grade>
  13.   <age>11</age>
  14.   </student>
  15.   <student>
  16.   <name>Simon</name>
  17.   <grade>A</grade>
  18.   <age>18</age>
  19.   </student>
  20.   </students>
  21.   Java代码
  22.   package net.viralpatel.java.xmlparser;
  23.   import java.io.File;
  24.   import javax.xml.parsers.DocumentBuilder;
  25.   import javax.xml.parsers.DocumentBuilderFactory;
  26.   import org.w3c.dom.Document;
  27.   import org.w3c.dom.Element;
  28.   import org.w3c.dom.Node;
  29.   import org.w3c.dom.NodeList;
  30.   public class XMLParser {
  31.   public void getAllUserNames(String fileName) {
  32.   try {
  33.   DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
  34.   DocumentBuilder db = dbf.newDocumentBuilder();
  35.   File file = new File(fileName);
  36.   if (file.exists()) {
  37.   Document doc = db.parse(file);
  38.   Element docEle = doc.getDocumentElement();
  39.   // Print root element of the document
  40.   System.out.println("Root element of the document: "
  41.   + docEle.getNodeName());
  42.   NodeList studentList = docEle.getElementsByTagName("student");
  43.   // Print total student elements in document
  44.   System.out
  45.   .println("Total students: " + studentList.getLength());
  46.   if (studentList != null && studentList.getLength() > 0) {
  47.   for (int i = 0; i < studentList.getLength(); i++) {
  48.   Node node = studentList.item(i);
  49. if (node.getNodeType() == Node.ELEMENT_NODE) {
  50.   System.out.println("=====================");
  51.   Element e = (Element) node;
  52.   NodeList nodeList = e.getElementsByTagName("name");
  53.   System.out.println("Name: "
  54.   + nodeList.item(0).getChildNodes().item(0)
  55.   .getNodeValue());
  56.   nodeList = e.getElementsByTagName("grade");
  57.   System.out.println("Grade: "
  58.   + nodeList.item(0).getChildNodes().item(0)
  59.   .getNodeValue());
  60.   nodeList = e.getElementsByTagName("age");
  61.   System.out.println("Age: "
  62.   + nodeList.item(0).getChildNodes().item(0)
  63.   .getNodeValue());
  64.   }
  65.   }
  66.   } else {
  67.   System.exit(1);
  68.   }
  69.   }
  70.   } catch (Exception e) {
  71.   System.out.println(e);
  72.   }
  73.   }
  74.   public static void main(String[] args) {
  75.   XMLParser parser = new XMLParser();
  76.   parser.getAllUserNames("c:\\test.xml");
  77.   }
  78.   }
17. 把 Array 转换成 Map
  
[java]
  1. Java代码
  2.   import java.util.Map;
  3.   import org.apache.commons.lang.ArrayUtils;
  4.   public class Main {
  5.   public static void main(String[] args) {
  6.   String[][] countries = { { "United States", "New York" }, { "United Kingdom", "London" },
  7.   { "Netherland", "Amsterdam" }, { "Japan", "Tokyo" }, { "France", "Paris" } };
  8.   Map countryCapitals = ArrayUtils.toMap(countries);
  9.   System.out.println("Capital of Japan is " + countryCapitals.get("Japan"));
  10.   System.out.println("Capital of France is " + countryCapitals.get("France"));
  11.   }
  12.   }
18. 发送邮件
  
[java]
  1. Java代码
  2.   import javax.mail.*;
  3.   import javax.mail.internet.*;
  4.   import java.util.*;
  5.   public void postMail( String recipients[ ], String subject, String message , String from) throws MessagingException
  6.   {
  7.   boolean debug = false;
  8.   //Set the host smtp address
  9.   Properties props = new Properties();
  10.   props.put("mail.smtp.host", "smtp.example.com");
  11.   // create some properties and get the default Session
  12.   Session session = Session.getDefaultInstance(props, null);
  13.   session.setDebug(debug);
  14.   // create a message
  15.   Message msg = new MimeMessage(session);
  16.   // set the from and to address
  17.   InternetAddress addressfrom = new InternetAddress(from);
  18.   msg.setfrom(addressfrom);
  19.   InternetAddress[] addressTo = new InternetAddress[recipients.length];
  20.   for (int i = 0; i < recipients.length; i++)
  21.   {
  22.   addressTo[i] = new InternetAddress(recipients[i]);
  23.   }
  24.   msg.setRecipients(Message.RecipientType.TO, addressTo);
  25.   // Optional : You can also set your custom headers in the Email if you Want
  26.   msg.addHeader("MyHeaderName", "myHeaderValue");
  27.   // Setting the Subject and Content Type
  28.   msg.setSubject(subject);
  29.   msg.setContent(message, "text/plain");
  30.   Transport.send(msg);
  31.   }
19. 发送代数据的HTTP 请求
  
[java]
  1. Java代码
  2.   import java.io.BufferedReader;
  3.   import java.io.InputStreamReader;
  4.   import java.net.URL;
  5.   public class Main {
  6.   public static void main(String[] args) {
  7.   try {
  8.   URL my_url = new URL("http://coolshell.cn/");
  9.   BufferedReader br = new BufferedReader(new InputStreamReader(my_url.openStream()));
  10.   String strTemp = "";
  11.   while(null != (strTemp = br.readLine())){
  12.   System.out.println(strTemp);
  13.   }
  14.   } catch (Exception ex) {
  15.   ex.printStackTrace();
  16.   }
  17.   }
  18.   }
20. 改变数组的大小
  
[java]
  1. Java代码
  2.   查看源代码打印帮助
  3.   private static Object resizeArray (Object oldArray, int newSize) {
  4.   int oldSize = java.lang.reflect.Array.getLength(oldArray);
  5.   Class elementType = oldArray.getClass().getComponentType();
  6.   Object newArray = java.lang.reflect.Array.newInstance(
  7.   elementType,newSize);
  8.   int preserveLength = Math.min(oldSize,newSize);
  9.   if (preserveLength > 0)
  10.   System.arraycopy (oldArray,0,newArray,0,preserveLength);
  11.   return newArray;
  12.   }
  13.   // Test routine for resizeArray().
  14.   public static void main (String[] args) {
  15.   int[] a = {1,2,3};
  16.   a = (int[])resizeArray(a,5);
  17.   a[3] = 4;
  18.   a[4] = 5;
  19.   for (int i=0; i<a.length; i++)
  20.   System.out.println (a[i]);
  21.   }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值