20非常有用的Java程序片段(1)

  下面是20个非常有用的Java程序片段,希望能对你有用。

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

  Stringa=String.valueOf(2);//integertonumericstring  inti=Integer.parseInt(a);//numericstringtoanint

  2. 向文件末尾添加内容

  BufferedWriterout=null;  try{  out=newBufferedWriter(newFileWriter(”filename”,true));  out.write(”aString”);  }catch(IOExceptione){  //errorprocessingcode  }finally{  if(out!=null){  out.close();  }  }

  3. 得到当前方法的名字

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

  4. 转字符串到日期

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

  或者是:

  SimpleDateFormatformat=newSimpleDateFormat("dd.MM.yyyy");  Datedate=format.parse(myString);

  5. 使用JDBC链接Oracle

  publicclassOracleJdbcTest  {  StringdriverClass="oracle.jdbc.driver.OracleDriver";  Connectioncon;  publicvoidinit(FileInputStreamfs)throwsClassNotFoundException,SQLException,FileNotFoundException,IOException  {  Propertiesprops=newProperties();  props.load(fs);  Stringurl=props.getProperty("db.url");  StringuserName=props.getProperty("db.user");  Stringpassword=props.getProperty("db.password");  Class.forName(driverClass);  con=DriverManager.getConnection(url,userName,password);  }  publicvoidfetch()throwsSQLException,IOException  {  PreparedStatementps=con.prepareStatement("selectSYSDATEfromdual");  ResultSetrs=ps.executeQuery();  while(rs.next())  {  //dothethingyoudo  }  rs.close();  ps.close();  }  publicstaticvoidmain(String[]args)  {  OracleJdbcTesttest=newOracleJdbcTest();  test.init();  test.fetch();  }  }

  6.把 Java util.Date转成 sql.Date

  java.util.DateutilDate=newjava.util.Date();  java.sql.DatesqlDate=newjava.sql.Date(utilDate.getTime());

  7. 使用NIO进行快速的文件拷贝

  publicstaticvoidfileCopy(Filein,Fileout)  throwsIOException  {  FileChannelinChannel=newFileInputStream(in).getChannel();  FileChanneloutChannel=newFileOutputStream(out).getChannel();  try  {  //inChannel.transferTo(0,inChannel.size(),outChannel);//original–apparentlyhastroublecopyinglargefilesonWindows  //magicnumberforWindows,64Mb-32Kb)  intmaxCount=(64*1024*1024)-(32*1024);  longsize=inChannel.size();  longposition=0;  while(position<size)  {  position+=inChannel.transferTo(position,maxCount,outChannel);  }  }  finally  {  if(inChannel!=null)  {  inChannel.close();  }  if(outChannel!=null)  {  outChannel.close();  }  }  }

  8. 创建图片的缩略图

  privatevoidcreateThumbnail(Stringfilename,intthumbWidth,intthumbHeight,intquality,StringoutFilename)  throwsInterruptedException,FileNotFoundException,IOException  {  //loadimagefromfilename  Imageimage=Toolkit.getDefaultToolkit().getImage(filename);  MediaTrackermediaTracker=newMediaTracker(newContainer());  mediaTracker.addImage(image,0);  mediaTracker.waitForID(0);  //usethistotestforerrorsatthispoint:System.out.println(mediaTracker.isErrorAny());  //determinethumbnailsizefromWIDTHandHEIGHT  doublethumbRatio=(double)thumbWidth/(double)thumbHeight;  intimageWidth=image.getWidth(null);  intimageHeight=image.getHeight(null);  doubleimageRatio=(double)imageWidth/(double)imageHeight;  if(thumbRatio<imageRatio){  thumbHeight=(int)(thumbWidth/imageRatio);  }else{  thumbWidth=(int)(thumbHeight*imageRatio);  }  //draworiginalimagetothumbnailimageobjectand  //scaleittothenewsizeon-the-fly  BufferedImagethumbImage=newBufferedImage(thumbWidth,thumbHeight,BufferedImage.TYPE_INT_RGB);  Graphics2Dgraphics2D=thumbImage.createGraphics();  graphics2D.setRenderingHint(RenderingHints.KEY_INTERPOLATION,RenderingHints.VALUE_INTERPOLATION_BILINEAR);  graphics2D.drawImage(image,0,0,thumbWidth,thumbHeight,null);  //savethumbnailimagetooutFilename  BufferedOutputStreamout=newBufferedOutputStream(newFileOutputStream(outFilename));  JPEGImageEncoderencoder=JPEGCodec.createJPEGEncoder(out);  JPEGEncodeParamparam=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)

  importorg.json.JSONObject;  …  …  JSONObjectjson=newJSONObject();  json.put("city","Mumbai");  json.put("country","India");  …  Stringoutput=json.toString();  …

  10. 使用iText JAR生成PDF

  阅读这篇文章 了解更多细节

  importjava.io.File;  importjava.io.FileOutputStream;  importjava.io.OutputStream;  importjava.util.Date;  importcom.lowagie.text.Document;  importcom.lowagie.text.Paragraph;  importcom.lowagie.text.pdf.PdfWriter;  publicclassGeneratePDF{  publicstaticvoidmain(String[]args){  try{  OutputStreamfile=newFileOutputStream(newFile("C:\\Test.pdf"));  Documentdocument=newDocument();  PdfWriter.getInstance(document,file);  document.open();  document.add(newParagraph("HelloKiran"));  document.add(newParagraph(newDate().toString()));  document.close();  file.close();  }catch(Exceptione){  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 示例

  请先阅读这篇文章 了解更多信息

  publicclassSimpleSingleton{  privatestaticSimpleSingletonsingleInstance=newSimpleSingleton();  //Markingdefaultconstructorprivate  //toavoiddirectinstantiation.  privateSimpleSingleton(){  }  //GetinstanceforclassSimpleSingleton  publicstaticSimpleSingletongetInstance(){  returnsingleInstance;  }  }

  另一种实现

  publicenumSimpleSingleton{  INSTANCE;  publicvoiddoSomething(){  }  }  //CallthemethodfromSingleton:  SimpleSingleton.INSTANCE.doSomething();

  13. 抓屏程序

  阅读这篇文章 获得更多信息。

  importjava.awt.Dimension;  importjava.awt.Rectangle;  importjava.awt.Robot;  importjava.awt.Toolkit;  importjava.awt.image.BufferedImage;  importjavax.imageio.ImageIO;  importjava.io.File;  …  publicvoidcaptureScreen(StringfileName)throwsException{  DimensionscreenSize=Toolkit.getDefaultToolkit().getScreenSize();  RectanglescreenRectangle=newRectangle(screenSize);  Robotrobot=newRobot();  BufferedImageimage=robot.createScreenCapture(screenRectangle);  ImageIO.write(image,"png",newFile(fileName));  }  …

  14. 列出文件和目录

  Filedir=newFile("directoryName");  String[]children=dir.list();  if(children==null){  //Eitherdirdoesnotexistorisnotadirectory  }else{  for(inti=0;i<children.length;i++){  //Getfilenameoffileordirectory  Stringfilename=children[i];  }  }  //Itisalsopossibletofilterthelistofreturnedfiles.  //Thisexampledoesnotreturnanyfilesthatstartwith`.’.  FilenameFilterfilter=newFilenameFilter(){  publicbooleanaccept(Filedir,Stringname){  return!name.startsWith(".");  }  };  children=dir.list(filter);  //ThelistoffilescanalsoberetrievedasFileobjects  File[]files=dir.listFiles();  //Thisfilteronlyreturnsdirectories  FileFilterfileFilter=newFileFilter(){  publicbooleanaccept(Filefile){  returnfile.isDirectory();  }  };  files=dir.listFiles(fileFilter);

  15. 创建ZIP和JAR文件

  importjava.util.zip.*;  importjava.io.*;  publicclassZipIt{  publicstaticvoidmain(Stringargs[])throwsIOException{  if(args.length<2){  System.err.println("usage:javaZipItZip.zipfile1file2file3");  System.exit(-1);  }  FilezipFile=newFile(args[0]);  if(zipFile.exists()){  System.err.println("Zipfilealreadyexists,pleasetryanother");  System.exit(-2);  }  FileOutputStreamfos=newFileOutputStream(zipFile);  ZipOutputStreamzos=newZipOutputStream(fos);  intbytesRead;  byte[]buffer=newbyte[1024];  CRC32crc=newCRC32();  for(inti=1,n=args.length;i<n;i++){  Stringname=args[i];  Filefile=newFile(name);  if(!file.exists()){  System.err.println("Skipping:"+name);  continue;  }  BufferedInputStreambis=newBufferedInputStream(  newFileInputStream(file));  crc.reset();  while((bytesRead=bis.read(buffer))!=-1){  crc.update(buffer,0,bytesRead);  }  bis.close();  //Resettobeginningofinputstream  bis=newBufferedInputStream(  newFileInputStream(file));  ZipEntryentry=newZipEntry(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文件

  <?xmlversion="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代码:

  ackagenet.viralpatel.java.xmlparser;  importjava.io.File;  importjavax.xml.parsers.DocumentBuilder;  importjavax.xml.parsers.DocumentBuilderFactory;  importorg.w3c.dom.Document;  importorg.w3c.dom.Element;  importorg.w3c.dom.Node;  importorg.w3c.dom.NodeList;  publicclassXMLParser{  publicvoidgetAllUserNames(StringfileName){  try{  DocumentBuilderFactorydbf=DocumentBuilderFactory.newInstance();  DocumentBuilderdb=dbf.newDocumentBuilder();  Filefile=newFile(fileName);  if(file.exists()){  Documentdoc=db.parse(file);  ElementdocEle=doc.getDocumentElement();  //Printrootelementofthedocument  System.out.println("Rootelementofthedocument:"  +docEle.getNodeName());  NodeListstudentList=docEle.getElementsByTagName("student");  //Printtotalstudentelementsindocument  System.out  .println("Totalstudents:"+studentList.getLength());  if(studentList!=null&&studentList.getLength()>0){  for(inti=0;i<studentList.getLength();i++){  Nodenode=studentList.item(i);  if(node.getNodeType()==Node.ELEMENT_NODE){  System.out  .println("=====================");  Elemente=(Element)node;  NodeListnodeList=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(Exceptione){  System.out.println(e);  }  }  publicstaticvoidmain(String[]args){  XMLParserparser=newXMLParser();  parser.getAllUserNames("c:\\test.xml");  }  }

  17.把 Array转换成 Map   

  importjava.util.Map;  importorg.apache.commons.lang.ArrayUtils;  publicclassMain{  publicstaticvoidmain(String[]args){  String[][]countries={{"UnitedStates","NewYork"},{"UnitedKingdom","London"},  {"Netherland","Amsterdam"},{"Japan","Tokyo"},{"France","Paris"}};  MapcountryCapitals=ArrayUtils.toMap(countries);  System.out.println("CapitalofJapanis"+countryCapitals.get("Japan"));  System.out.println("CapitalofFranceis"+countryCapitals.get("France"));  }  }

  18. 发送邮件

  importjavax.mail.*;  importjavax.mail.internet.*;  importjava.util.*;  publicvoidpostMail(Stringrecipients[],Stringsubject,Stringmessage,Stringfrom)throwsMessagingException  {  booleandebug=false;  //Setthehostsmtpaddress  Propertiesprops=newProperties();  props.put("mail.smtp.host","smtp.example.com");  //createsomepropertiesandgetthedefaultSession  Sessionsession=Session.getDefaultInstance(props,null);  session.setDebug(debug);  //createamessage  Messagemsg=newMimeMessage(session);  //setthefromandtoaddress  InternetAddressaddressFrom=newInternetAddress(from);  msg.setFrom(addressFrom);  InternetAddress[]addressTo=newInternetAddress[recipients.length];  for(inti=0;i<recipients.length;i++)  {  addressTo[i]=newInternetAddress(recipients[i]);  }  msg.setRecipients(Message.RecipientType.TO,addressTo);  //Optional:YoucanalsosetyourcustomheadersintheEmailifyouWant  msg.addHeader("MyHeaderName","myHeaderValue");  //SettingtheSubjectandContentType  msg.setSubject(subject);  msg.setContent(message,"text/plain");  Transport.send(msg);  }

  19. 发送代数据的HTTP 请求

  importjava.io.BufferedReader;  importjava.io.InputStreamReader;  importjava.net.URL;  publicclassMain{  publicstaticvoidmain(String[]args){  try{  URLmy_url=newURL(";);  BufferedReaderbr=newBufferedReader(newInputStreamReader(my_url.openStream()));  StringstrTemp="";  while(null!=(strTemp=br.readLine())){  System.out.println(strTemp);  }  }catch(Exceptionex){  ex.printStackTrace();  }  }  }

  20. 改变数组的大小

  /**  *Reallocatesanarraywithanewsize,andcopiesthecontents  *oftheoldarraytothenewarray.  *@paramoldArraytheoldarray,tobereallocated.  *@paramnewSizethenewarraysize.  *@returnAnewarraywiththesamecontents.  */  privatestaticObjectresizeArray(ObjectoldArray,intnewSize){  intoldSize=java.lang.reflect.Array.getLength(oldArray);  ClasselementType=oldArray.getClass().getComponentType();  ObjectnewArray=java.lang.reflect.Array.newInstance(  elementType,newSize);  intpreserveLength=Math.min(oldSize,newSize);  if(preserveLength>0)  System.arraycopy(oldArray,0,newArray,0,preserveLength);  returnnewArray;  }  //TestroutineforresizeArray().  publicstaticvoidmain(String[]args){  int[]a={1,2,3};  a=(int[])resizeArray(a,5);  a[3]=4;  a[4]=5;  for(inti=0;i<a.length;i++)  System.out.println(a[i]);  }

找回自我,歇够了,再飞回来,继续面对自己的人生。

20非常有用的Java程序片段(1)

相关文章:

你感兴趣的文章:

标签云: