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

1
2
java.util.Date utilDate = new java.util.Date();  
java.sql.Date sqlDate = new java.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
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. 创建图片的缩略图

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
private void createThumbnail(String filename, int thumbWidth, int thumbHeight, int quality, String outFilename)  
throws InterruptedException, FileNotFoundException, IOException  
{  
// load p_w_picpath from filename  
Image p_w_picpath = Toolkit.getDefaultToolkit().getImage(filename);  
MediaTracker mediaTracker = new MediaTracker( new Container());  
mediaTracker.addImage(p_w_picpath, 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 p_w_picpathWidth = p_w_picpath.getWidth( null );  
int p_w_picpathHeight = p_w_picpath.getHeight( null );  
double p_w_picpathRatio = ( double )p_w_picpathWidth / ( double )p_w_picpathHeight;  
if (thumbRatio < p_w_picpathRatio) {  
thumbHeight = ( int )(thumbWidth / p_w_picpathRatio);  
} else {  
thumbWidth = ( int )(thumbHeight * p_w_picpathRatio);  
}  
// draw original p_w_picpath to thumbnail p_w_picpath 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(p_w_picpath, 0 , 0 , thumbWidth, thumbHeight, null );  
// save thumbnail p_w_picpath to outFilename  
BufferedOutputStream out = 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. 创建 JSON 格式的数据

请先阅读这篇文章 了解一些细节,
并下面这个JAR 文件:json-rpc-1.0.jar (75 kb)

1
2
3
4
5
6
7
8
9
import org.json.JSONObject;  
...  
...  
JSONObject json = new JSONObject();  
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
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();  
}  
}  
}