nStartPos += fileAccessI.write(b,0,nRead);</p> //if(nThreadID == 1)
) E% J; A1 P ]. @ // Utility.log("nStartPos = " + nStartPos + ", nEndPos = " + nEndPos);
1 B0 K5 I; \ x# S3 L' R }
( P- Q' ~: ]0 J( R* {8 ~) W Utility.log("Thread " + nThreadID + " is over!");
" y3 J5 V+ M! \4 @ bDownOver = true;
, T& G: d' s* J# R //nPos = fileAccessI.write (b,0,nRead);
5 O1 f9 v8 E) Y7 w2 W+ i }
+ X# T3 T8 p6 f9 @0 x& n catch(Exception e){e.printStackTrace ();}: [3 ^. `4 S6 J( m$ u
}) S% j' Q# P7 c& }
}
& f M. y0 C: z0 i! }% U3 O- L //打印回应的头信息
2 e1 |) L1 U/ k; L: K; k- ] public void logResponseHead(HttpURLConnection con)
5 P0 r9 H4 P; K! B" l {
; S) W* y$ y5 a! q; T) O# ^% i for(int i=1;;i++)9 P+ _( N# _. Z
{ B3 Y$ m1 r, V0 J2 O, n. {
String header=con.getHeaderFieldKey(i);& g7 K$ ?1 T$ T- n
if(header!=null)
( M' C; F- a9 J9 r //responseHeaders.put(header,httpConnection.getHeaderField(header));
: B9 k' J0 d$ Y& K Utility.log(header+" : "+con.getHeaderField(header));
6 y- J* K1 H6 }% }7 r, ]; l& @: ^ else! B6 P6 P$ Y, S: P# A
break;
% {. |- Z4 ~7 h9 A B4 | }. |" L8 P5 r3 [; E2 I# [9 _, e3 s
}
_- d; I3 g" p8 H7 M3 c( v9 s+ \ public void splitterStop()
3 j0 U9 `+ A9 E/ }. a+ b {9 j" J1 p0 k7 O: A g9 F8 f
bStop = true;
7 M- X' v: `! w$ T" A }, a& j7 h' Q: [: e" j6 |
}
$ M2 ]) `- v8 q; `3 k /*
6 W+ [% s. y) `9 y2 q **FileAccess.java9 z/ ?: S, H# H- M# z
*/
' J+ u# }$ R) A* G. m% O package NetFox;7 a% U. K+ R: I- y) k$ L
import java.io.*;9 B- G6 @8 v. b" K E* c: S; a# H; b
public class FileAccessI implements Serializable{
' s" e% N: `$ d H- s" b7 @ RandomAccessFile oSavedFile;' \$ }9 J/ @+ J( [$ D0 ]7 u" a' w! }+ ^
long nPos;
% O5 u1 B+ v a public FileAccessI() throws IOException( }7 M4 y, r3 p
{
" Y$ d: c& o& M7 n6 N! {& C this("",0);
- m! q9 W7 y- E2 b h( l7 P, _ }- y- Z1 q5 A! W. h* w c
public FileAccessI(String sName,long nPos) throws IOException
* Y' p% v: A( p$ d {
- }$ h! [, `/ b! ~9 V oSavedFile = new RandomAccessFile(sName,"rw");
# d# E5 S4 n V6 C this.nPos = nPos;: }3 t; D! X2 q7 B/ b
oSavedFile.seek(nPos);
5 M' C8 I7 m2 I X) o4 ]+ K } A$ c; P6 }' J7 b M" L
public synchronized int write(byte[] b,int nStart,int nLen)
/ g( X4 h6 ~7 b" o, G) Y3 D {
- M" Y; d8 g7 L% i+ n int n = -1;
- ?2 G4 q. s, d: F try{
5 h" K! i6 h) s oSavedFile.write(b,nStart,nLen);: v0 m4 \2 o$ I' B5 w7 [$ i% |) r6 j; ~
n = nLen;: K& u9 ` l8 f/ x- Q- V
}
; I9 J# e" a- Y, g catch(IOException e)
1 F$ E: N7 |' b/ ^3 \+ a {& T5 _6 f) x. j$ s' U
e.printStackTrace ();/ ?: M3 X" v- c& D1 o" ^0 ], z9 i
}" {* @# [5 G9 X. t) m; @; d
return n;+ w9 j+ h) f2 o' k& y- \$ K
} Y1 E1 v3 F$ Q3 Y, c0 @( H5 Z
}
9 b9 W8 }- B7 U- ` /*
; m4 F0 \ e9 H3 V) n **SiteInfoBean.java0 J3 l8 d/ x" F, V% ?% K
*// s! R" I2 y1 ? `
package NetFox;
! H, p/ ]1 R( i public class SiteInfoBean {
6 c9 m8 u; v, W$ Z- ] private String sSiteURL; //Site's URL0 k5 {4 l& h) X* r. H
private String sFilePath; //Saved File's Path
' X o- b% q- ^# a0 b$ d6 D# M private String sFileName; //Saved File's Name6 z4 V% r3 N1 D5 } e0 M
private int nSplitter; //Count of Splited Downloading File3 t3 f8 N' G& h, p4 L$ r
public SiteInfoBean()
4 o! M4 W+ f' ?: r: O& w/ | {
( V. u9 D7 j* E+ c
! O, }; Q2 O" p, s6 c0 e) R |