下面是20個非常有用的Java程序片段,希望能對你有用。
1. 字符串有整型的相互轉換
1 |
|
2 |
String a = String.valueOf( 2 );
//integer to numeric string |
3 |
int
i = Integer.parseInt(a); //numeric string to an int
|
2. 向文件末尾添加內容
01 |
|
02 |
BufferedWriter out = null ;
|
03 |
try
{ |
04 |
out =
new BufferedWriter( new
FileWriter(”filename”, true ));
|
05 |
out.write(”aString”);
|
06 |
} catch
(IOException e) { |
07 |
// error processing code
|
08 |
} finally
{ |
09 |
if
(out != null ) {
|
10 |
out.close();
|
11 |
}
|
12 |
} |
3. 得到當前方法的名字
1 |
String methodName = Thread.currentThread().getStackTrace()[ 1 ].getMethodName();
|
4. 轉字符串到日期
1 |
|
2 |
java.util.Date = java.text.DateFormat.getDateInstance().parse(date String);
|
或者是:
1 |
|
2 |
SimpleDateFormat format = new
SimpleDateFormat( "dd.MM.yyyy"
); |
3 |
Date date = format.parse( myString );
|
5. 使用JDBC鏈接Oracle
01 |
public
class OracleJdbcTest |
02 |
{ |
03 |
String driverClass =
"oracle.jdbc.driver.OracleDriver" ;
|
04 |
|
05 |
Connection con;
|
06 |
|
07 |
public
void init(FileInputStream fs)
throws ClassNotFoundException, SQLException, FileNotFoundException, IOException
|
08 |
{
|
09 |
Properties props =
new Properties();
|
10 |
props.load(fs);
|
11 |
String url = props.getProperty( "db.url" );
|
12 |
String userName = props.getProperty( "db.user" );
|
13 |
String password = props.getProperty( "db.password" );
|
14 |
Class.forName(driverClass);
|
15 |
|
16 |
con=DriverManager.getConnection(url, userName, password);
|
17 |
}
|
18 |
|
19 |
public
void fetch() throws
SQLException, IOException |
20 |
{
|
21 |
PreparedStatement ps = con.prepareStatement( "select SYSDATE from dual" );
|
22 |
ResultSet rs = ps.executeQuery();
|
23 |
|
24 |
while
(rs.next()) |
25 |
{
|
26 |
// do the thing you do
|
27 |
}
|
28 |
rs.close();
|
29 |
ps.close();
|
30 |
}
|
31 |
|
32 |
public
static void
main(String[] args) |
33 |
{
|
34 |
OracleJdbcTest test =
new OracleJdbcTest();
|
35 |
test.init();
|
36 |
test.fetch();
|
37 |
}
|
38 |
} |
6. 把 Java util.Date 轉成 sql.Date
1 |
java.util.Date utilDate = new
java.util.Date(); |
2 |
java.sql.Date sqlDate = new
java.sql.Date(utilDate.getTime()); |
7. 使用NIO進行快速的文件拷貝
01 |
public
static void fileCopy( File in, File out )
|
02 |
throws
IOException |
03 |
{
|
04 |
FileChannel inChannel =
new FileInputStream( in ).getChannel();
|
05 |
FileChannel outChannel =
new FileOutputStream( out ).getChannel();
|
06 |
try |
07 |
{
|
08 |
// inChannel.transferTo(0, inChannel.size(), outChannel); // original -- apparently has trouble copying large files on Windows
|
09 |
|
10 |
// magic number for Windows, 64Mb - 32Kb)
|
11 |
int
maxCount = ( 64
* 1024 * 1024 ) - ( 32
* 1024 );
|
12 |
long
size = inChannel.size(); |
13 |
long
position = 0 ;
|
14 |
while
( position < size ) |
15 |
{
|
16 |
position += inChannel.transferTo( position, maxCount, outChannel );
|
17 |
}
|
18 |
}
|
19 |
finally |
20 |
{
|
21 |
if
( inChannel != null
) |
22 |
{
|
23 |
inChannel.close();
|
24 |
}
|
25 |
if
( outChannel != null
) |
26 |
{
|
27 |
outChannel.close();
|
28 |
}
|
29 |
}
|
30 |
}
|
8. 創建圖片的縮略圖
01 |
private
void createThumbnail(String filename, int
thumbWidth, int
thumbHeight, int
quality, String outFilename) |
02 |
throws
InterruptedException, FileNotFoundException, IOException
|
03 |
{
|
04 |
// load image from filename
|
05 |
Image image = Toolkit.getDefaultToolkit().getImage(filename);
|
06 |
MediaTracker mediaTracker =
new MediaTracker( new
Container()); |
07 |
mediaTracker.addImage(image,
0 ); |
08 |
mediaTracker.waitForID( 0 );
|
09 |
// use this to test for errors at this point: System.out.println(mediaTracker.isErrorAny());
|
10 |
|
11 |
// determine thumbnail size from WIDTH and HEIGHT
|
12 |
double
thumbRatio = ( double )thumbWidth / ( double )thumbHeight;
|
13 |
int
imageWidth = image.getWidth( null );
|
14 |
int
imageHeight = image.getHeight( null );
|
15 |
double
imageRatio = ( double )imageWidth / ( double )imageHeight;
|
16 |
if
(thumbRatio < imageRatio) { |
17 |
thumbHeight = ( int )(thumbWidth / imageRatio);
|
18 |
}
else {
|
19 |
thumbWidth = ( int )(thumbHeight * imageRatio);
|
20 |
}
|
21 |
|
22 |
// draw original image to thumbnail image object and
|
23 |
// scale it to the new size on-the-fly
|
24 |
BufferedImage thumbImage =
new BufferedImage(thumbWidth, thumbHeight, BufferedImage.TYPE_INT_RGB);
|
25 |
Graphics2D graphics2D = thumbImage.createGraphics();
|
26 |
graphics2D.setRenderingHint(RenderingHints.KEY_INTERPOLATION, RenderingHints.VALUE_INTERPOLATION_BILINEAR);
|
27 |
graphics2D.drawImage(image,
0 , 0 , thumbWidth, thumbHeight,
null );
|
28 |
|
29 |
// save thumbnail image to outFilename
|
30 |
BufferedOutputStream out =
new BufferedOutputStream( new
FileOutputStream(outFilename)); |
31 |
JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(out);
|
32 |
JPEGEncodeParam param = encoder.getDefaultJPEGEncodeParam(thumbImage);
|
33 |
quality = Math.max( 0 , Math.min(quality,
100 )); |
34 |
param.setQuality(( float )quality /
100 .0f, false );
|
35 |
encoder.setJPEGEncodeParam(param);
|
36 |
encoder.encode(thumbImage);
|
37 |
out.close();
|
38 |
}
|
9. 創建 JSON 格式的數據
請先閱讀這篇文章 瞭解一些細節,
並下面這個JAR 文件:json-rpc-1.0.jar (75 kb)
1 |
import
org.json.JSONObject; |
2 |
... |
3 |
... |
4 |
JSONObject json = new
JSONObject(); |
5 |
json.put( "city" ,
"Mumbai" );
|
6 |
json.put( "country" ,
"India" );
|
7 |
... |
8 |
String output = json.toString();
|
9 |
... |
10. 使用iText JAR生成PDF
閱讀這篇文章 瞭解更多細節
01 |
|
02 |
import
java.io.File; |
03 |
import
java.io.FileOutputStream; |
04 |
import
java.io.OutputStream; |
05 |
import
java.util.Date; |
06 |
|
07 |
import
com.lowagie.text.Document; |
08 |
import
com.lowagie.text.Paragraph; |
09 |
import
com.lowagie.text.pdf.PdfWriter; |
10 |
|
11 |
public
class GeneratePDF { |
12 |
|
13 |
public
static void
main(String[] args) { |
14 |
try
{ |
15 |
OutputStream file =
new FileOutputStream( new
File( "C:\\Test.pdf" ));
|
16 |
|
17 |
Document document =
new Document();
|
18 |
PdfWriter.getInstance(document, file);
|
19 |
document.open();
|
20 |
document.add( new
Paragraph( "Hello Kiran" ));
|
21 |
document.add( new
Paragraph( new
Date().toString())); |
22 |
|
23 |
document.close();
|
24 |
file.close();
|
25 |
|
26 |
}
catch (Exception e) {
|
27 |
|
28 |
e.printStackTrace();
|
29 |
}
|
30 |
}
|
31 |
} |
11. HTTP 代理設置
閱讀這篇 文章 瞭解更多細節。
1 |
|
2 |
System.getProperties().put( "http.proxyHost" ,
"someProxyURL" );
|
3 |
System.getProperties().put( "http.proxyPort" ,
"someProxyPort" );
|
4 |
System.getProperties().put( "http.proxyUser" ,
"someUserName" );
|
5 |
System.getProperties().put( "http.proxyPassword" ,
"somePassword" );
|
12. 單實例Singleton 示例
請先閱讀這篇文章 瞭解更多信息
01 |
|
02 |
public
class SimpleSingleton { |
03 |
private
static SimpleSingleton singleInstance =
new SimpleSingleton();
|
04 |
|
05 |
//Marking default constructor private
|
06 |
//to avoid direct instantiation.
|
07 |
private
SimpleSingleton() { |
08 |
}
|
09 |
|
10 |
//Get instance for class SimpleSingleton
|
11 |
public
static SimpleSingleton getInstance() {
|
12 |
|
13 |
return
singleInstance; |
14 |
}
|
15 |
} |
另一種實現
1 |
public
enum SimpleSingleton { |
2 |
INSTANCE;
|
3 |
public
void doSomething() {
|
4 |
}
|
5 |
} |
6 |
|
7 |
//Call the method from Singleton:
|
8 |
SimpleSingleton.INSTANCE.doSomething();
|
13. 抓屏程序
閱讀這篇文章 獲得更多信息。
01 |
import
java.awt.Dimension; |
02 |
import
java.awt.Rectangle; |
03 |
import
java.awt.Robot; |
04 |
import
java.awt.Toolkit; |
05 |
import
java.awt.image.BufferedImage; |
06 |
import
javax.imageio.ImageIO; |
07 |
import
java.io.File; |
08 |
|
09 |
... |
10 |
|
11 |
public
void captureScreen(String fileName) throws
Exception { |
12 |
|
13 |
Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
|
14 |
Rectangle screenRectangle =
new Rectangle(screenSize);
|
15 |
Robot robot =
new Robot();
|
16 |
BufferedImage image = robot.createScreenCapture(screenRectangle);
|
17 |
ImageIO.write(image,
"png" , new
File(fileName)); |
18 |
|
19 |
} |
20 |
... |
14. 列出文件和目錄
01 |
File dir = new
File( "directoryName" );
|
02 |
String[] children = dir.list();
|
03 |
if
(children == null ) {
|
04 |
// Either dir does not exist or is not a directory
|
05 |
}
else { |
06 |
for
( int
i= 0 ; i < children.length; i++) {
|
07 |
// Get filename of file or directory
|
08 |
String filename = children[i];
|
09 |
}
|
10 |
}
|
11 |
|
12 |
// It is also possible to filter the list of returned files.
|
13 |
// This example does not return any files that start with `.'.
|
14 |
FilenameFilter filter =
new FilenameFilter() {
|
15 |
public
boolean accept(File dir, String name) {
|
16 |
return
!name.startsWith( "." );
|
17 |
}
|
18 |
};
|
19 |
children = dir.list(filter);
|
20 |
|
21 |
// The list of files can also be retrieved as File objects
|
22 |
File[] files = dir.listFiles();
|
23 |
|
24 |
// This filter only returns directories
|
25 |
FileFilter fileFilter =
new FileFilter() {
|
26 |
public
boolean accept(File file) {
|
27 |
return
file.isDirectory(); |
28 |
}
|
29 |
};
|
30 |
files = dir.listFiles(fileFilter);
|
15. 創建ZIP和JAR文件
01 |
|
02 |
import
java.util.zip.*; |
03 |
import
java.io.*; |
04 |
|
05 |
public
class ZipIt { |
06 |
public
static void
main(String args[]) throws
IOException { |
07 |
if
(args.length < 2 ) {
|
08 |
System.err.println( "usage: java ZipIt Zip.zip file1 file2 file3" );
|
09 |
System.exit(- 1 );
|
10 |
}
|
11 |
File zipFile =
new File(args[ 0 ]);
|
12 |
if
(zipFile.exists()) { |
13 |
System.err.println( "Zip file already exists, please try another" );
|
14 |
System.exit(- 2 );
|
15 |
}
|
16 |
FileOutputStream fos =
new FileOutputStream(zipFile);
|
17 |
ZipOutputStream zos =
new ZipOutputStream(fos);
|
18 |
int
bytesRead; |
19 |
byte [] buffer =
new byte [ 1024 ];
|
20 |
CRC32 crc =
new CRC32();
|
21 |
for
( int
i= 1 , n=args.length; i < n; i++) {
|
22 |
String name = args[i];
|
23 |
File file =
new File(name);
|
24 |
if
(!file.exists()) { |
25 |
System.err.println( "Skipping: "
+ name); |
26 |
continue ;
|
27 |
}
|
28 |
BufferedInputStream bis =
new BufferedInputStream(
|
29 |
new
FileInputStream(file)); |
30 |
crc.reset();
|
31 |
while
((bytesRead = bis.read(buffer)) != - 1 ) {
|
32 |
crc.update(buffer,
0 , bytesRead);
|
33 |
}
|
34 |
bis.close();
|
35 |
// Reset to beginning of input stream
|
36 |
bis =
new BufferedInputStream(
|
37 |
new
FileInputStream(file)); |
38 |
ZipEntry entry =
new ZipEntry(name);
|
39 |
entry.setMethod(ZipEntry.STORED);
|
40 |
entry.setCompressedSize(file.length());
|
41 |
entry.setSize(file.length());
|
42 |
entry.setCrc(crc.getValue());
|
43 |
zos.putNextEntry(entry);
|
44 |
while
((bytesRead = bis.read(buffer)) != - 1 ) {
|
45 |
zos.write(buffer,
0 , bytesRead);
|
46 |
}
|
47 |
bis.close();
|
48 |
}
|
49 |
zos.close();
|
50 |
}
|
51 |
} |
16. 解析/讀取XML 文件
XML文件
01 |
<? xml
version = "1.0" ?>
|
02 |
< students >
|
03 |
< student >
|
04 |
< name >John</ name >
|
05 |
< grade >B</ grade >
|
06 |
< age >12</ age >
|
07 |
</ student >
|
08 |
< student >
|
09 |
< name >Mary</ name >
|
10 |
< grade >A</ grade >
|
11 |
< age >11</ age >
|
12 |
</ student >
|
13 |
< student >
|
14 |
< name >Simon</ name >
|
15 |
< grade >A</ grade >
|
16 |
< age >18</ age >
|
17 |
</ student >
|
18 |
</ students >
|
Java代碼
01 |
|
02 |
package
net.viralpatel.java.xmlparser; |
03 |
|
04 |
import
java.io.File; |
05 |
import
javax.xml.parsers.DocumentBuilder; |
06 |
import
javax.xml.parsers.DocumentBuilderFactory; |
07 |
|
08 |
import
org.w3c.dom.Document; |
09 |
import
org.w3c.dom.Element; |
10 |
import
org.w3c.dom.Node; |
11 |
import
org.w3c.dom.NodeList; |
12 |
|
13 |
public
class XMLParser { |
14 |
|
15 |
public
void getAllUserNames(String fileName) {
|
16 |
try
{ |
17 |
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
|
18 |
DocumentBuilder db = dbf.newDocumentBuilder();
|
19 |
File file =
new File(fileName);
|
20 |
if
(file.exists()) { |
21 |
Document doc = db.parse(file);
|
22 |
Element docEle = doc.getDocumentElement();
|
23 |
|
24 |
// Print root element of the document
|
25 |
System.out.println( "Root element of the document: " |
26 |
+ docEle.getNodeName());
|
27 |
|
28 |
NodeList studentList = docEle.getElementsByTagName( "student" );
|
29 |
|
30 |
// Print total student elements in document
|
31 |
System.out
|
32 |
.println( "Total students: "
+ studentList.getLength()); |
33 |
|
34 |
if
(studentList != null
&& studentList.getLength() > 0 ) {
|
35 |
for
( int
i = 0 ; i < studentList.getLength(); i++) {
|
36 |
|
37 |
Node node = studentList.item(i);
|
38 |
|
39 |
if
(node.getNodeType() == Node.ELEMENT_NODE) { |
40 |
|
41 |
System.out
|
42 |
.println( "=====================" );
|
43 |
|
44 |
Element e = (Element) node;
|
45 |
NodeList nodeList = e.getElementsByTagName( "name" );
|
46 |
System.out.println( "Name: " |
47 |
+ nodeList.item( 0 ).getChildNodes().item( 0 )
|
48 |
.getNodeValue()); |
49 |
|
50 |
nodeList = e.getElementsByTagName( "grade" );
|
51 |
System.out.println( "Grade: " |
52 |
+ nodeList.item( 0 ).getChildNodes().item( 0 )
|
53 |
.getNodeValue()); |
54 |
|
55 |
nodeList = e.getElementsByTagName( "age" );
|
56 |
System.out.println( "Age: " |
57 |
+ nodeList.item( 0 ).getChildNodes().item( 0 )
|
58 |
.getNodeValue()); |
59 |
}
|
60 |
}
|
61 |
}
else {
|
62 |
System.exit( 1 );
|
63 |
}
|
64 |
}
|
65 |
}
catch (Exception e) {
|
66 |
System.out.println(e);
|
67 |
}
|
68 |
}
|
69 |
public
static void
main(String[] args) { |
70 |
|
71 |
XMLParser parser =
new XMLParser();
|
72 |
parser.getAllUserNames( "c:\\test.xml" );
|
73 |
}
|
74 |
} |
17. 把 Array 轉換成 Map
01 |
|
02 |
import
java.util.Map; |
03 |
import
org.apache.commons.lang.ArrayUtils; |
04 |
|
05 |
public
class Main { |
06 |
|
07 |
public
static void
main(String[] args) { |
08 |
String[][] countries = { {
"United States" ,
"New York" }, {
"United Kingdom" ,
"London" }, |
09 |
{
"Netherland" ,
"Amsterdam" }, {
"Japan" , "Tokyo"
}, { "France" ,
"Paris" } };
|
10 |
|
11 |
Map countryCapitals = ArrayUtils.toMap(countries);
|
12 |
|
13 |
System.out.println( "Capital of Japan is "
+ countryCapitals.get( "Japan" ));
|
14 |
System.out.println( "Capital of France is "
+ countryCapitals.get( "France" ));
|
15 |
}
|
16 |
} |
18. 發送郵件
01 |
import
javax.mail.*; |
02 |
import
javax.mail.internet.*; |
03 |
import
java.util.*; |
04 |
|
05 |
public
void postMail( String recipients[ ], String subject, String message , String from)
throws MessagingException
|
06 |
{ |
07 |
boolean
debug = false ;
|
08 |
|
09 |
//Set the host smtp address
|
10 |
Properties props =
new Properties();
|
11 |
props.put( "mail.smtp.host" ,
"smtp.example.com" );
|
12 |
|
13 |
// create some properties and get the default Session
|
14 |
Session session = Session.getDefaultInstance(props,
null );
|
15 |
session.setDebug(debug);
|
16 |
|
17 |
// create a message
|
18 |
Message msg =
new MimeMessage(session);
|
19 |
|
20 |
// set the from and to address
|
21 |
InternetAddress addressFrom =
new InternetAddress(from);
|
22 |
msg.setFrom(addressFrom);
|
23 |
|
24 |
InternetAddress[] addressTo =
new InternetAddress[recipients.length];
|
25 |
for
( int
i = 0 ; i < recipients.length; i++)
|
26 |
{
|
27 |
addressTo[i] =
new InternetAddress(recipients[i]);
|
28 |
}
|
29 |
msg.setRecipients(Message.RecipientType.TO, addressTo);
|
30 |
|
31 |
// Optional : You can also set your custom headers in the Email if you Want
|
32 |
msg.addHeader( "MyHeaderName" ,
"myHeaderValue" );
|
33 |
|
34 |
// Setting the Subject and Content Type
|
35 |
msg.setSubject(subject);
|
36 |
msg.setContent(message,
"text/plain" );
|
37 |
Transport.send(msg);
|
38 |
} |
19. 發送代數據的HTTP 請求
01 |
|
02 |
import
java.io.BufferedReader; |
03 |
import
java.io.InputStreamReader; |
04 |
import
java.net.URL; |
05 |
|
06 |
public
class Main { |
07 |
public
static void
main(String[] args) { |
08 |
try
{ |
09 |
URL my_url =
new URL( "http://coolshell.cn/" );
|
10 |
BufferedReader br =
new BufferedReader( new
InputStreamReader(my_url.openStream())); |
11 |
String strTemp =
"" ; |
12 |
while ( null
!= (strTemp = br.readLine())){ |
13 |
System.out.println(strTemp);
|
14 |
}
|
15 |
}
catch (Exception ex) {
|
16 |
ex.printStackTrace();
|
17 |
}
|
18 |
}
|
19 |
} |
20. 改變數組的大小
01 |
|
02 |
/** |
03 |
* Reallocates an array with a new size, and copies the contents
|
04 |
* of the old array to the new array.
|
05 |
* @param oldArray the old array, to be reallocated.
|
06 |
* @param newSize the new array size.
|
07 |
* @return A new array with the same contents.
|
08 |
*/ |
09 |
private
static Object resizeArray (Object oldArray,
int newSize) {
|
10 |
int
oldSize = java.lang.reflect.Array.getLength(oldArray);
|
11 |
Class elementType = oldArray.getClass().getComponentType();
|
12 |
Object newArray = java.lang.reflect.Array.newInstance(
|
13 |
elementType,newSize);
|
14 |
int
preserveLength = Math.min(oldSize,newSize); |
15 |
if
(preserveLength > 0 )
|
16 |
System.arraycopy (oldArray, 0 ,newArray, 0 ,preserveLength);
|
17 |
return
newArray; |
18 |
} |
19 |
|
20 |
// Test routine for resizeArray().
|
21 |
public
static void main (String[] args) {
|
22 |
int [] a = { 1 , 2 , 3 };
|
23 |
a = ( int [])resizeArray(a, 5 );
|
24 |
a[ 3 ] =
4 ; |
25 |
a[ 4 ] =
5 ; |
26 |
for
( int
i= 0 ; i<a.length; i++)
|
27 |
System.out.println (a[i]);
|
28 |
} |