您的位置:首页 > 编程语言 > Java开发

20个非常有用的Java代码片段

2016-11-18 00:00 381 查看
1. 字符串有整型的相互转换

1
2
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
java.util.Date = java.text.DateFormat.getDateInstance().parse(date String);

或者是:

1
2
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
28
29
30
31
32
33
34
35
36
37
38
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
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 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生成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
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();

}

}

}

11. HTTP 代理设置

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

1
2
3
4
System.getProperties().put(
"http.proxyHost"
,
"someProxyURL"
);

System.getProperties().put(
"http.proxyPort"
,
"someProxyPort"
);

System.getProperties().put(
"http.proxyUser"
,
"someUserName"
);

System.getProperties().put(
"http.proxyPassword"
,
"somePassword"
);

12. 单实例Singleton 示例

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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
public
class
SimpleSingleton {

private
static
SimpleSingleton singleInstance =
new
SimpleSingleton();


//Marking default constructor private

//to avoid direct instantiation.

private
SimpleSingleton() {

}


//Get instance for class SimpleSingleton

public
static
SimpleSingleton getInstance() {


return
singleInstance;

}

}

另一种实现

1
2
3
4
5
6
7
8
public
enum
SimpleSingleton {

INSTANCE;

public
void
doSomething() {

}

}


//Call the method from Singleton:

SimpleSingleton.INSTANCE.doSomething();

13. 抓屏程序

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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
import
java.awt.Dimension;

import
java.awt.Rectangle;

import
java.awt.Robot;

import
java.awt.Toolkit;

import
java.awt.image.BufferedImage;

import
javax.imageio.ImageIO;

import
java.io.File;


...


public
void
captureScreen(String fileName)
throws
Exception {


Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();

Rectangle screenRectangle =
new
Rectangle(screenSize);

Robot robot =
new
Robot();

BufferedImage image = robot.createScreenCapture(screenRectangle);

ImageIO.write(image,
"png"
,
new
File(fileName));


}

...

14. 列出文件和目录

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
File dir =
new
File(
"directoryName"
);

String[] children = dir.list();

if
(children ==
null
) {

// Either dir does not exist or is not a directory

}
else
{

for
(
int
i=
0
; i < children.length; i++) {

// Get filename of file or directory

String filename = children[i];

}

}


// It is also possible to filter the list of returned files.

// This example does not return any files that start with `.'.

FilenameFilter filter =
new
FilenameFilter() {

public
boolean
accept(File dir,String name) {

return
!name.startsWith(
"."
);

}

};

children = dir.list(filter);


// The list of files can also be retrieved as File objects

File[] files = dir.listFiles();


// This filter only returns directories

FileFilter fileFilter =
new
FileFilter() {

public
boolean
accept(File file) {

return
file.isDirectory();

}

};

files = dir.listFiles(fileFilter);

15. 创建ZIP和JAR文件

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
39
40
41
42
43
44
45
46
47
48
49
50
import
java.util.zip.*;

import
java.io.*;


public
class
ZipIt {

public
static
void
main(String args[])
throws
IOException {

if
(args.length <
2
) {

System.err.println(
"usage: java ZipIt Zip.zip file1 file2 file3"
);

System.exit(-
1
);

}

File zipFile =
new
File(args[
0
]);

if
(zipFile.exists()) {

System.err.println(
"Zip file already exists,please try another"
);

System.exit(-
2
);

}

FileOutputStream fos =
new
FileOutputStream(zipFile);

ZipOutputStream zos =
new
ZipOutputStream(fos);

int
bytesRead;

byte
[] buffer =
new
byte
[
1024
];

CRC32 crc =
new
CRC32();

for
(
int
i=
1
,n=args.length; i < n; i++) {

String name = args[i];

File file =
new
File(name);

if
(!file.exists()) {

System.err.println(
"Skipping: "
+ name);

continue
;

}

BufferedInputStream bis =
new
BufferedInputStream(

new
FileInputStream(file));

crc.reset();

while
((bytesRead = bis.read(buffer)) != -
1
) {

crc.update(buffer,
0
,bytesRead);

}

bis.close();

// Reset to beginning of input stream

bis =
new
BufferedInputStream(

new
FileInputStream(file));

ZipEntry entry =
new
ZipEntry(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文件

<?
xml
version
=
"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代码

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
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
package
net.viralpatel.java.xmlparser;


import
java.io.File;

import
javax.xml.parsers.DocumentBuilder;

import
javax.xml.parsers.DocumentBuilderFactory;


import
org.w3c.dom.Document;

import
org.w3c.dom.Element;

import
org.w3c.dom.Node;

import
org.w3c.dom.NodeList;


public
class
XMLParser {


public
void
getAllUserNames(String fileName) {

try
{

DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();

DocumentBuilder db = dbf.newDocumentBuilder();

File file =
new
File(fileName);

if
(file.exists()) {

Document doc = db.parse(file);

Element docEle = doc.getDocumentElement();


// Print root element of the document

System.out.println(
"Root element of the document: "

+ docEle.getNodeName());


NodeList studentList = docEle.getElementsByTagName(
"student"
);


// Print total student elements in document

System.out

.println(
"Total students: "
+ studentList.getLength());


if
(studentList !=
null
&& studentList.getLength() >
0
) {

for
(
int
i =
0
; i < studentList.getLength(); i++) {


Node node = studentList.item(i);


if
(node.getNodeType() == Node.ELEMENT_NODE) {


System.out

.println(
"====================="
);


Element e = (Element) node;

NodeList nodeList = 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
(Exception e) {

System.out.println(e);

}

}

public
static
void
main(String[] args) {


XMLParser parser =
new
XMLParser();

parser.getAllUserNames(
"c:\\test.xml"
);

}

}

17. 把 Array 转换成 Map

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
import
java.util.Map;

import
org.apache.commons.lang.ArrayUtils;


public
class
Main {


public
static
void
main(String[] args) {

String[][] countries = {{
"United States"
,
"New York"
},{
"United Kingdom"
,
"London"
},

{
"Netherland"
,
"Amsterdam"
},{
"Japan"
,
"Tokyo"
},{
"France"
,
"Paris"
}};


Map countryCapitals = ArrayUtils.toMap(countries);


System.out.println(
"Capital of Japan is "
+ countryCapitals.get(
"Japan"
));

System.out.println(
"Capital of France is "
+ countryCapitals.get(
"France"
));

}

}

18. 发送邮件

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
import
javax.mail.*;

import
javax.mail.internet.*;

import
java.util.*;


public
void
postMail( String recipients[ ],String subject,String message ,String from) 
throws
MessagingException

{

boolean
debug =
false
;


 
//Set the host smtp address

 
Properties props =
new
Properties();

 
props.put(
"mail.smtp.host"
,
"smtp.example.com"
);


// create some properties and get the default Session

Session session = Session.getDefaultInstance(props,
null
);

session.setDebug(debug);


// create a message

Message msg =
new
MimeMessage(session);


// set the from and to address

InternetAddress addressFrom =
new
InternetAddress(from);

msg.setFrom(addressFrom);


InternetAddress[] addressTo =
new
InternetAddress[recipients.length];

for
(
int
i =
0
; i < recipients.length; i++)

{

addressTo[i] =
new
InternetAddress(recipients[i]);

}

msg.setRecipients(Message.RecipientType.TO,addressTo);


// Optional : You can also set your custom headers in the Email if you Want

msg.addHeader(
"MyHeaderName"
,
"myHeaderValue"
);


// Setting the Subject and Content Type

msg.setSubject(subject);

msg.setContent(message,
"text/plain"
);

Transport.send(msg);

}

19. 发送代数据的HTTP 请求

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
import
java.io.BufferedReader;

import
java.io.InputStreamReader;

import
java.net.URL;


public
class
Main {

public
static
void
main(String[] args){

try
{

URL my_url =
new
URL(
"http://coolshell.cn/"
);

BufferedReader br =
new
BufferedReader(
new
InputStreamReader(my_url.openStream()));

String strTemp =
""
;

while
(
null
!= (strTemp = br.readLine())){

System.out.println(strTemp);

}

}
catch
(Exception ex) {

ex.printStackTrace();

}

}

}

20. 改变数组的大小

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

*Reallocates an array with a new size,and copies the contents 

*of the old array to the new array. 

*@param oldArraythe old array,to be reallocated. 

*@param newSizethe new array size. 

*@returnA new array with the same contents. 

*/

private
static
Object resizeArray (Object oldArray,
int
newSize) {

int
oldSize = java.lang.reflect.Array.getLength(oldArray);

Class elementType = oldArray.getClass().getComponentType();

Object newArray = java.lang.reflect.Array.newInstance(

 
elementType,newSize);

int
preserveLength = Math.min(oldSize,newSize);

if
(preserveLength >
0
)

System.arraycopy (oldArray,
0
,newArray,
0
,preserveLength);

return
newArray;

}


// Test routine for resizeArray().

public
static
void
main (String[] args) {

int
[] a = {
1
,
2
,
3
};

a = (
int
[])resizeArray(a,
5
);

a[
3
] =
4
;

a[
4
] =
5
;

for
(
int
i=
0
; i<a.length; i++)

System.out.println (a[i]);

}

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  java Java EE