20个开发人员非常有用的Java功能代码(转载)

20个开发人员非常有用的Java功能代码(转载)

1 把Strings转换成int和把int转换成String

String a = String.valueOf(2); //integer to numeric string

int i = Integer.parseInt(a);  //numeric string to an int

2 向Java文件中添加文本

BufferedWriter ut = 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 获取Java现在正调用的方法名

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

4 在Java中将String型转换成Date型

java.util.Date = java.text.DateFormat.getDateInstance().parse(date String);

or

SimpleDateFormat format = new SimpleDateFormat( "dd.MM.yyyy"); 

Date date = format.parse( myString );

5 通过Java 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快速复制Java文件

public static void fileCopy( File in, File out )  throws IOException  { 
FileChannel inChannel = new FileInputStream( in ).getChannel(); 
FileChannel utChannel = 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 在Java中创建缩略图 

 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.setRenderingHintRenderingHints.KEY_INTERPOLATION,RenderingHints.VALUE_INTERPOLATION_BILINEAR); 

    graphics2D.drawImage(image, 0, 0, thumbWidth, thumbHeight, null); 

    // save thumbnail image to outFilename 

    BufferedOutputStream ut = 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 在Java中创建JSON数据

 Read this article for more details.Download JAR file json-rpc-1.0.jar (75 kb)
import org.json.JSONObject; 
... 
... 
JSONObject json = new JSONObject(); 
json.put("city", "Mumbai"); 
json.put("country", "India"); 
... 
String utput = json.toString(); 
...
10 在Java中使用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 在Java上的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 Java Singleton 例子

public class SimpleSingleton { 
    private static SimpleSingleton singleInstance =  new SimpleSingleton(); 

    private SimpleSingleton() {  } 

    //Get instance for class SimpleSingleton 

    public static SimpleSingleton getInstance() { 
        return singleInstance; 

    } 

}

13 在Java上做屏幕截图

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  在Java中的文件,目录列表

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 在Java中创建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 在Java中解析/读取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>

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 在Java中将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 在Java中发送电子邮件

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 使用Java发送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://www.viralpatel.net/blogs/"); 
        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中调整数组

private static Object resizeArray (Object oldArray, int newSize) { 
    int ldSize = 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]); 
}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值