zoukankan      html  css  js  c++  java
  • 【转】20非常有用的Java程序片段

    下面是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

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

    2. 单实例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代码:

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

    原文链接:http://coolshell.cn/articles/889.html

    【编辑推荐】

  • 相关阅读:
    Python requests“Max retries exceeded with url” error
    命令行链接mongo、redis、mysql
    python 删除字典某个key(键)及对应值
    python标准模块(二)
    python标准模块(一)
    格式化输出
    LeetCode----1. Two Sum
    文件操作(初阶)
    python函数基础
    python3内置函数
  • 原文地址:https://www.cnblogs.com/daocaowu/p/3161681.html
Copyright © 2011-2022 走看看