在讀取大型文件或者其它大批量數據輸入操作時
使用這個類也非常方便
ProgressMonitorInputStream類繼承層次
[pre]java
|
+
|
+
|
+
構造方法
ProgressMonitorInputStream
(Component parentComponent
Object message
parentComponent
message
顯示在進度顯示窗口中的指示信息
in
操作方法
除了在InputStream和FilterInputStream中繼承的方法外
ProgressMonitor getProgressMonitor()
//得到當前對象使用的ProgressMonitor對象
int read()
int read(byte[] b)
int read(byte[] b
void reset()
long skip(long n)
//上面幾個方法都是覆蓋了FilterInputStream中的方法
因為需要更新進度指示
void close()
//因為需要關閉進度監視對象和窗口
所以覆蓋了FilterInputStream父類中的close方法
示例代碼:
import java
import java
import java
import java
import java
import javax
import javax
import javax
public class ProgressMonitorTest
{
public static void main(String[] args)
{
// 創建一個包含
final JFrame f =
new JFrame(
f
JButton b = new JButton(
f
f
// 設置按鈕的動作事件
b
{
public void actionPerformed(ActionEvent e)
{
// 這兒使用了新的線程處理按鈕的動作事件
因為我們需要
//主窗口的線程響應用戶
//會啟動多個讀取文件的線程
new Thread()
{
public void run()
{
try {
// 打開文件輸出流
把InputStream包裝在ProgressMonitorInputStream中
//在當前目錄中需要放置一個大文件
InputStream in = new FileInputStream(
ProgressMonitorInputStream pm =
new ProgressMonitorInputStream(f
// 讀取文件
將會自動彈出一個進度監視窗口
// 顯示已讀取的百分比
int c;
while((c=pm
{
// 處理代碼
}
pm
}
catch(Exception ex)
{
ex
}
}
}
}});
// 設置缺省的窗口關閉行為
f
(JFrame
f
}
}
From:http://tw.wingwit.com/Article/program/Java/hx/201311/25629.html