為什么我在函數中向指定文件寫入int a =10,運行后。目標文件沒有顯示10,但是調用printHex函數卻可以看到打印出10
public?static?void?main(String[]?args)?throws?IOException?{ ???????? ????????//如果文件不存在,則直接創建,存在則刪除后創建 ????????FileOutputStream?out?=?new?FileOutputStream("F:\\java\\wds.txt"); ????????//這樣寫,則直接在文件后面添加輸出的內容 ????????//FileOutputStream?out?=?new?FileOutputStream("F:\\java\\wds.txt",true); ????????//向文件中寫入'A'的低字節(后八位) ????????out.write('A'); ????????//寫入字符串,應將字符串轉換成字符數組 ????????String?s?=?"十幾個ID死了"; ????????byte[]?b?=?s.getBytes(); ????????System.out.println(b.length); ????????for?(byte?c?:?b)? ????????{???????????????????? ????????????out.write(c); ????????} ????????out.write(b); ????????//寫入整數 ????????int?a?=?10; ????????for(int?i?=3;i>=0;i--) ????????{ ????????????out.write(a>>>i*8); ????????} ???????? ????????out.close(); ???????? ????????IOUtils.printHex("F:\\java\\wds.txt"); ???????? ????}
12
65 202 174 188 184 184 246 73 68 203
192 193 203 202 174 188 184 184 246 73
68 203 192 193 203 00 00 00 010
2018-08-14
我也是遇到了這個問題,我知道問題所在,但是現在還沒有找到解決的方法,這個問題和前面有一節的是一樣的,寫入數字會有錯誤,會亂碼,通過我的檢測,這個數字寫入文件會變成ASCII存儲,你可以把數據改一下,對照ASCII碼表,就會發現輸入的數字是一一對應的。然而我還沒有解決的辦法。。。。
2017-07-08
16進制10應該是00 00 00 0a