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

    copy by http://coolshell.cn/articles/889.html

    --

    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) {
                    try {
                        out.close();
                    } catch (IOException e) {
                        e.printStackTrace();
                    }
                }
            }

    3. 得到当前方法的名字

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

    4. 转字符串到日期

    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 main(String[] args) {
            try {
                fileCopy(new File("d://temp.txt"), new File("d://t.txt"));
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    
        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. 创建图片的缩略图

        public static void main(String[] args) {
    
            try {
                createThumbnail("d://a.png", 500, 500, 2000, "d://b.png");
            } catch (FileNotFoundException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            } catch (InterruptedException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        }
    
        private static 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 java.io.File;
    
    import javax.imageio.ImageIO;
    
    public static void main(String[] args) {
            try {
                captureScreen("d://a.jpg");
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    
        public static 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. 列出文件和目录

        public static void main(String[] args) {
            File dir = new File("d://");
            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];
                    System.out.println(filename);
                }
            }
            System.out.println("--------");
            // 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代码

    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;
    
    /**
     * java 测试类 <br>
     * 
     * @author song
     * @date 2012-7-9 上午09:29:15
     */
    public class Test {
    
        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) {
            Test parser = new Test();
            parser.getAllUserNames("d:\\test.xml");
        }
    }

    17. 把 Array 转换成 Map 

    import java.util.Map;
    import org.apache.commons.lang.ArrayUtils;
    
    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 java.util.Properties;
    
    import javax.mail.Message;
    import javax.mail.MessagingException;
    import javax.mail.Session;
    import javax.mail.Transport;
    import javax.mail.internet.InternetAddress;
    import javax.mail.internet.MimeMessage;
    
    /**
     * java 测试类 <br>
     * 
     * @author song
     * @date 2012-7-9 上午09:29:15
     */
    public class Test {
        public static void main(String[] args) {
            String recipients[] = { "12345678@qq.com" };
            try {
                postMail(recipients, "subject", "message", "********@qq.com");
            } catch (MessagingException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
    
        }
    
        public static 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 请求

        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. 改变数组的大小

    /**
     * java 测试类 <br>
     * 
     * @author song
     * @date 2012-7-9 上午09:29:15
     */
    public class Test {
        /**
         * * 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]);
        }
    
    }

     计算字符串中各个字符出现的次数

    import java.util.HashMap;
    import java.util.Map;
    
    public class Test {
    
        public static void main(String[] args) {
            String s = "啦啦啦啦啦你好你不好我好112";
            Map<Character, Integer> m = new HashMap<Character, Integer>();
    
            for (int i = 0; i < s.length(); i++) {
                char c = s.charAt(i);
                int count = 1;
                if (m.containsKey(c)) {
                    count += m.get(c);
                }
                m.put(c, count);
            }
    
            for (Map.Entry<Character, Integer> e : m.entrySet()) {
                System.out.println(e.getKey() + " : " + e.getValue());
            }
        }
    
    }

     

     

     

     

     

     

    --

  • 相关阅读:
    面向对象
    方法
    前端学习笔记 --- HTML
    算法笔记 --- 记忆搜索算法 --- 动态规划算法
    算法笔记 --- 哈希函数分流的概念 --- 一致性哈希算法
    算法笔记 --- 排列组合 --- 括号序列问题
    算法笔记 --- 排列组合
    算法笔记 --- 布隆过滤器
    算法笔记 --- 位运算
    数据结构 --- 堆
  • 原文地址:https://www.cnblogs.com/syc001/p/2606245.html
Copyright © 2011-2022 走看看