20段有用的Java片段一

这20各个代码段是我在之前学习Java时,在某个网站看到的,当时直接剪到了有道云笔记中,好久不写Java,最近整理笔记,觉得这些小知识作为Reference还是很方便的,所以搬到自己的博客中,向原作者表示感谢!之后在Reference中会随时记录有用的代码片段,以提高开发效率。

下面是20个非常有用的Java程序片段,希望能对你有用。
本篇记录1-10

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

1
String a = String.valueOf(2);   //integer to numeric string  int i = Integer.parseInt(a); //numeric string to an int

2 . 向文件末尾添加内容

1
2
3
4
5
6
7
8
9
10
11
BufferedWriter out = 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 . 得到当前方法的名字

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

4 . 转字符串到日期

1
2
3
4
5
6
java.util.Date = java.text.DateFormat.getDateInstance().parse(date String);

//或者是:

SimpleDateFormat format = new SimpleDateFormat( "dd.MM.yyyy" );
Date date = format.parse( myString );

5 . 使用JDBC链接Oracle

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
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

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
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 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.setRenderingHint(RenderingHints.KEY_INTERPOLATION, RenderingHints.VALUE_INTERPOLATION_BILINEAR);
graphics2D.drawImage(image, 0, 0, thumbWidth, thumbHeight, null);

// save thumbnail image 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生成PDFd

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

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
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();
}
}
}
那强 wechat
加个微信 成为朋友吧