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

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

    来源:码农网   时间:2015-03-17 10:23:28   阅读数:1057

    分享到:0

    [导读] 下面是20个非常有用的Java程序片段,希望能对你有用。1 字符串有整型的相互转换String a = String valueOf(2); integer to numeric string int i = Integer parseInt(a); numeric stri

     

    下面是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, 00, thumbWidth, thumbHeight, null); 
     
    // save thumbnail image to outFilename 
    BufferedOutputStream out = new BufferedOutputStream(newFileOutputStream(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 `.'. 
    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) throwsMessagingException 
    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(newInputStreamReader(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]); 
    }

     

  • 相关阅读:
    springboot文件上传: 单个文件上传 和 多个文件上传
    Eclipse:很不错的插件-devStyle,将你的eclipse变成idea风格
    springboot项目搭建:结构和入门程序
    POJ 3169 Layout 差分约束系统
    POJ 3723 Conscription 最小生成树
    POJ 3255 Roadblocks 次短路
    UVA 11367 Full Tank? 最短路
    UVA 10269 Adventure of Super Mario 最短路
    UVA 10603 Fill 最短路
    POJ 2431 Expedition 优先队列
  • 原文地址:https://www.cnblogs.com/u0mo5/p/4389703.html
Copyright © 2011-2022 走看看