我是一個真正的頭髮拉拉的java新手。希望有人能幫忙。從jar或目錄加載時文件的行爲不同
我有一個二進制文件,從applet的目錄 加載好,但只從applet的jar文件部分加載。
下面的代碼以兩種方式加載文件並比較它們。它們 應該是相同的,但輸出是「字節8181處的分歧」。
int spx_data_length = 158994;
byte[] spx_buf = new byte[spx_data_length];
byte[] spx_buf2 = new byte[spx_data_length];
// binary file in jar
InputStream is = Vocals.class.getResourceAsStream("0.raw");
is.read(spx_buf, 0, spx_data_length);
is.close();
// same binary file in applet directory
URL srcURL=new URL(getCodeBase(),"0.raw");
URLDataSource u_dat = new URLDataSource(srcURL);
is=u_dat.getInputStream();
is.read(spx_buf2, 0, spx_data_length);
is.close();
// compare them
for(int i=0;ispx_data_length;i++){
if(spx_buf[i] != spx_buf2[i]){
Obj[0]="divergence at byte "+i; win.call("show_string", Obj);
i=spx_data_length;
}
}
首先,從jar中解壓縮並與原始文件進行比較。 –
你是怎麼得到'spx_data_length'的?沒有硬編碼? –
從jar中提取的文件與源文件相同,文件長度是硬編碼的,大約300k。 – Brad