[問題] 讀取檔案的問題
需要從binary檔案中一個byte一個byte的讀出,然後判斷內容做些處理之後透過網路送出
現在讀檔的部份,讀出的東西和預期的不一樣
謝謝tkcn大的指點,以下是修改後的部份code
-----------------------------------------------------
byte addrArray[]=new char[16];
File updateFile=new File(updateFileTextField.getText());
FileInputStream fileStream=new FileInputStream(updateFile);
Socket sock = serverSock.accept();
OutputStreamWriter writer = new OutputStreamWriter(sock.getOutputStream());
for(int i=0;i<16;i++){
addrArray[i]=(byte)fileStream.read();
System.out.print(Integer.toHexString(addrArray[i])+",");
}
writer.write(addrArray,0,16);
writer.flush();
------------------------------------------------------
檔案中前16個bytes,在UltraEdit下看來是
00 01 00 00 00 00 00 FC 20 00 FB FF 00 03 D3 C8
接著下來是 00 03 D4 28.............
程式印出的結果是
0,1,0,0,0,0,0,fc,20,0,fb,ff,0,3,d3,c8
沒有問題
不過丟出去的封包是
00 01 00 00 00 00 00 3f 20 00 3f 3f 00 03 3f 3f
正在尋找問題以及解決的方法
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 210.66.86.158
→
08/10 14:13, , 1F
08/10 14:13, 1F
→
08/10 14:13, , 2F
08/10 14:13, 2F
→
08/10 14:19, , 3F
08/10 14:19, 3F
→
08/10 14:35, , 4F
08/10 14:35, 4F
弄成int只是因為read會回傳int 最終目的是要把資料原封不動透過網路傳送出去
→
08/10 14:39, , 5F
08/10 14:39, 5F
把FileReader換成InputStream嗎?
※ 編輯: lakegreen 來自: 210.66.86.158 (08/10 14:41)
不好意思之前說錯,不是字元,是binary
※ 編輯: lakegreen 來自: 210.66.86.158 (08/10 14:44)
→
08/10 14:43, , 6F
08/10 14:43, 6F
※ 編輯: lakegreen 來自: 210.66.86.158 (08/10 16:16)
→
08/10 16:48, , 7F
08/10 16:48, 7F
→
08/10 16:55, , 8F
08/10 16:55, 8F
→
08/10 17:22, , 9F
08/10 17:22, 9F
→
08/11 09:46, , 10F
08/11 09:46, 10F
※ 編輯: lakegreen 來自: 210.66.86.158 (08/11 09:47)
推
08/12 11:27, , 11F
08/12 11:27, 11F