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
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
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();  
}  
}


你可能感兴趣的:(java,文章)