20非常有用的Java程序片段(6-10)

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

1
2
java.util.Date utilDate = newjava.util.Date();  
java.sql.Date sqlDate = newjava.sql.Date(utilDate.getTime());

7. 使用NIO進行快速的文件拷貝

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
publicstaticvoidfileCopy( File in, File out )  
throwsIOException  
{  
FileChannel inChannel = newFileInputStream( in ).getChannel();  
FileChannel outChannel = newFileOutputStream( out ).getChannel();  
try
{  
//          inChannel.transferTo(0, inChannel.size(), outChannel);      // original -- apparently has trouble copying large files on Windows  
// magic number for Windows, 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. 創建圖片的縮略圖

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
privatevoidcreateThumbnail(String filename, intthumbWidth, intthumbHeight, intquality, String outFilename)  
throwsInterruptedException, FileNotFoundException, IOException  
{  
// load image from filename  
Image image = Toolkit.getDefaultToolkit().getImage(filename);  
MediaTracker mediaTracker = newMediaTracker(newContainer());  
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  
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);  
}  
// draw original image to thumbnail image object and  
// scale it to the new size on-the-fly  
BufferedImage thumbImage = newBufferedImage(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);  
// save thumbnail image to outFilename  
BufferedOutputStream out = newBufferedOutputStream(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)

1
2
3
4
5
6
7
8
9
importorg.json.JSONObject;  
...  
...  
JSONObject json = newJSONObject();  
json.put("city", "Mumbai");  
json.put("country", "India");  
...  
String output = json.toString();  
...

10. 使用iText JAR生成PDF

閱讀這篇文章 瞭解更多細節

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
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{  
OutputStream file = newFileOutputStream(newFile("C:\\Test.pdf"));  
Document document = newDocument();  
PdfWriter.getInstance(document, file);  
document.open();  
document.add(newParagraph("Hello Kiran"));  
document.add(newParagraph(newDate().toString()));  
document.close();  
file.close();  
} catch(Exception e) {  
e.printStackTrace();  
}  
}  
}


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章