11. HTTP 代理设置

阅读这篇 了解更多细节。

1
2
3
4
5
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
15
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.p_w_picpath.BufferedImage;  
import
javax.p_w_picpathio.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 p_w_picpath = robot.createScreenCapture(screenRectangle);  
ImageIO.write(p_w_picpath,
"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
51
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();  
}  
}