20非常有用的Java程序片段(11-15)

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
publicclassSimpleSingleton {  
privatestaticSimpleSingleton singleInstance =  newSimpleSingleton();  
//Marking default constructor private  
//to avoid direct instantiation.  
privateSimpleSingleton() {  
}  
//Get instance for class SimpleSingleton  
publicstaticSimpleSingleton getInstance() {  
returnsingleInstance;  
}  
}

另一種實現

1
2
3
4
5
6
7
8
publicenumSimpleSingleton {  
INSTANCE;  
publicvoiddoSomething() {  
}  
}  
//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
importjava.awt.Dimension;  
importjava.awt.Rectangle;  
importjava.awt.Robot;  
importjava.awt.Toolkit;  
importjava.awt.image.BufferedImage;  
importjavax.imageio.ImageIO;  
importjava.io.File;  
...  
publicvoidcaptureScreen(String fileName) throwsException {  
Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();  
Rectangle screenRectangle = newRectangle(screenSize);  
Robot robot = newRobot();  
BufferedImage image = robot.createScreenCapture(screenRectangle);  
ImageIO.write(image, "png", newFile(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 = newFile("directoryName");  
String[] children = dir.list();  
if(children == null) {  
// Either dir does not exist or is not a directory  
} else{  
for(inti=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 = newFilenameFilter() {  
publicbooleanaccept(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 = newFileFilter() {  
publicbooleanaccept(File file) {  
returnfile.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
importjava.util.zip.*;  
importjava.io.*;  
publicclassZipIt {  
publicstaticvoidmain(String args[]) throwsIOException {  
if(args.length < 2) {  
System.err.println("usage: java ZipIt Zip.zip file1 file2 file3");  
System.exit(-1);  
}  
File zipFile = newFile(args[0]);  
if(zipFile.exists()) {  
System.err.println("Zip file already exists, please try another");  
System.exit(-2);  
}  
FileOutputStream fos = newFileOutputStream(zipFile);  
ZipOutputStream zos = newZipOutputStream(fos);  
intbytesRead;  
byte[] buffer = newbyte[1024];  
CRC32 crc = newCRC32();  
for(inti=1, n=args.length; i < n; i++) {  
String name = args[i];  
File file = newFile(name);  
if(!file.exists()) {  
System.err.println("Skipping: "+ name);  
continue;  
}  
BufferedInputStream bis = newBufferedInputStream(  
newFileInputStream(file));  
crc.reset();  
while((bytesRead = bis.read(buffer)) != -1) {  
crc.update(buffer, 0, bytesRead);  
}  
bis.close();  
// Reset to beginning of input stream  
bis = newBufferedInputStream(  
newFileInputStream(file));  
ZipEntry entry = newZipEntry(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();  
}  
}


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