美文网首页
20个非常有用的Java程序片段

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

作者: 环零弦 | 来源:发表于2017-08-03 17:04 被阅读0次

    抄自这里

    1. 字符串有整型的相互转换

    String a = String.valueOf(2);
    int i = Integer.parseInt(a);
    

    2. 向文件末尾添加内容

    BufferedWriter out = null;
    try {
        out = new BufferedWriter(new FileWriter("filename", true));
        out.write("aString");
    } catch(IOException e) {
        if(out != null) {
            out.close();
        }
    }
    

    3. 得到当前方法的名字

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

    4. 转字符串到日期

    java.util.Date = java.text.DateFormat.getDateInstance().parse(data 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 what you want
            }
            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 fastCopy(File in, File out) throws IOException{
        FileChannel inChannel = new FileInputStream(in).getChannel();
        FileChannel outChannel = new FileOutputStream(out).getChannel();
        try {
            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 {
        Image iamge = Toolkit.getDefaultToolkit().getImage(filename);
        MediaTracker mediaTracker = new MediaTracker(new Container());
        mediaTracker.addImage(image, 0);
        mediaTracker.waitForID(0);
    
        double thumbRatio = (double)thumbWidth / (double)thumbleHeight;
        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);
        }
    
        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);
        BufferedOutputStream out = new BufferedOuptStream(new FileOutputStream(outFilename));
        JPEGImageEncoder encoder = JPEGCoderc.createJPEGEncoderParam(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.0jar(75kb)

    import org.json.JSONObject;
    ...
    ...
    JSONObject json = new JSONObject();
    json.put("city", "Mubai");
    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.io.util.Date;
    import com.lowagie.text.Document;
    import com.lowagie.text.Paragraph;
    import com.lowagie.text.pdf.PdfWriter;
    pubic 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.printStackTrance();
            }
        }
    }
    

    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 singleInstace = new SimpleSingleton();
        private SimpleSingleton() {
        }
        public static SimpleSingleton getInstance() {
            return singleInstance;
        }
    }
    

    另一种实现

    public enum SingleSingleton {
        INSTANCE;
        public void 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) {
    
    } else {
        for(int i = 0; i < children.length; i++) {
            String filename = children[i];
        }
    }
    
    FilenameFilter filter = new FilenameFilter() {
        public boolean accept(File dir, String name) {
            return !name.startsWith(".");
        }
    };
    children = dir.list(filter);
    File[] files = dir.listFiles();
    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.exits()) {
                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 = 0, n = args.length; i < n; i++) {
                String name = args[i];
                File file = new File(name);
                if(!file.exists()) {
                    System.err.println("Skipping: " + name);
                }
                BufferedInputStream bis = new BufferedInputStream(new FileInputStream(file));
                crc.reset();
                while((bytesRead = bis.read(buffer)) != -1) {
                    crc.update(buffer, 0, bytesRead);
                }
                bis.close();
                bis = new BufferedInputStream(new FileInputStream(file));
                ZipEntry entry = new ZipEntry(name);
                entry.setMethod(ZipEntry.STORED);
                entry.setCompressedSize(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>John</name>
            <grade>B</grade>
            <age>12</age>
        </student>
        <student>
            <name>John</name>
            <grade>B</grade>
            <age>12</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;
    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();
                    System.out.println("Root element of the document:" + docEle.getNodeName());
                    NodeList studentList = docEle.getElementsByTagName("student");
                    Sysout.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.getElementsNyTagName("name");
                                System.out.println("Name: " + nodeList.item(0).getChildNodes().item(0).getNodeValue());
                                NodeList nodeList = e.getElementsNyTagName("grade");
                                System.out.println("Grade: " + nodeList.item(0).getChildNodes().item(0).getNodeValue());
                                NodeList nodeList = e.getElementsNyTagName("age");
                                System.out.println("Age: " + nodeList.item(0).getChildNodes().item(0).getNodeValue());
                            }
                        } else {
                            System.exit(1);
                        }
                    }
                }
            } catch (Exception e) {
                Sysout.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;
        Properties props = new Properties();
        props.put("mail.smtp.host", "smtp.example.com");
        Session session = Session.getDefaultInstance(props, null);
        session.setDebug(debug);
        Message msg = new MimeMessage(session);
        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);
        msg.addHeader("MyHeaderName", "myHeaderName");
        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 staitc 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. 改变数组大小

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

    相关文章

      网友评论

          本文标题:20个非常有用的Java程序片段

          本文链接:https://www.haomeiwen.com/subject/wfkelxtx.html