已采納回答 / pergod
bytes是讀取到字節(jié)的長度,如果因為流位于文件末尾而沒有 可用 的字節(jié),則返回值 -1。(bytes = in.read(buf, 0, buf.length))> 20*1024,如果這樣設(shè)置的話,后面已經(jīng)沒有可用的字節(jié)還是會繼續(xù)讀入,這樣會異常吧。
2016-12-22
已采納回答 / 春城樂
public static void main(String[] args) throws IOException { // TODO 自動生成的方法存根 String file="demo/dos.txt"; DataOutputStream dos=new DataOutputStream(new FileOutputStream(file)); dos.writeInt(10); dos.writeInt(-10); dos.writeLong(10L); dos.writeDoub...
2016-12-17
已采納回答 / 慕粉4406662
b是byte類型占8位,而我們需要的int類型是32位,所以會進(jìn)行符號位擴(kuò)展。如果原來的byte為11111111,擴(kuò)展后就會變?yōu)?1111111 11111111 11111111 11111111,所以需要把前三位變?yōu)?,0xff二進(jìn)制就是1111 1111,前三位都是0,所以與0xff相與后就只剩下最低的一位為1。
2016-12-14
已采納回答 / 透過眼鏡的臉
getBytes()方法是將一個字符串轉(zhuǎn)化為一個字節(jié)數(shù)組byte[]的方法,使用的是默認(rèn)的UTF-8編碼表進(jìn)行轉(zhuǎn)換的。byte是數(shù)據(jù)類型,不是進(jìn)制類型,沒有說是二進(jìn)制。java的byte是-128~127區(qū)間,所以說轉(zhuǎn)換成十六進(jìn)制沒毛病。
2016-12-05
已采納回答 / chrealcool
是數(shù)據(jù)長度。是in.read讀取文件存放在buf中的長度,你代碼中輸出bytes看下就知道了。估計你是把數(shù)據(jù)和長度搞混了把數(shù)據(jù)是存放在buf字節(jié)數(shù)組中,即老師代碼中輸出buf[i]
2016-12-03
已采納回答 / 綠色蟈蟈拜見
不好意思,是我沒有解釋清楚。這個問題提的好!首先我們貼出Java的源碼:public synchronized int read() throws IOException { if (pos >= count) { fill(); if (pos >= count) return -1; } return getBufIfOpen()[pos++] & 0xff;注意返回值,read的返回值雖然是int,但是他是讀取的byte&0xff得到的,而例2中,因為...
2016-12-01
已采納回答 / rjyb22
0xff即16進(jìn)制的1515,轉(zhuǎn)化為二進(jìn)制為11111111,不管byte[i]要轉(zhuǎn)化為什么進(jìn)制,要變成多少位,只要和11111111相與,結(jié)果就是個八bit位的數(shù),所以就去0,
只要知道0xff=11111111就好,它是8bit位。
2016-11-30
已采納回答 / 綠色蟈蟈拜見
凌晨來回答問題。首先我們要弄明白,對于一個buf[i], 我們在什么情況下需要在輸出之前補0,什么時候不需要補0.答案很清楚,如果它的高四位都是0,那么我們需要補,否則不需要。那么問題來了,怎么判斷呢?老師的代碼是用buf[i] <= 0xf,可是代碼結(jié)果不正確,會出現(xiàn)錯誤補0,也就是三個數(shù)字一起的情況。如果buf[i] == 0xff, 那么按程序是需要補0,因為作為一個byte,0xff實際上等于-1, 那么自然也小于0xf,因為0xf代表15.這就是出錯的問題。if判定語句改為((buf&am...
2016-11-28
已采納回答 / KeT
你在構(gòu)造文件輸出流這個對象的時候,加了true吧。FileOutputStream(File?file,
boolean?append) 創(chuàng)建一個向指定 File 對象表示的文件中寫入數(shù)據(jù)的文件輸出流,大概就像這樣子吧,如果你加了true,它原先的文件內(nèi)容是不會刪除,直接在原基礎(chǔ)上加上新的內(nèi)容。不對的話,可以把代碼發(fā)上來,讓大家看一看,對的話,請采納,謝謝。
2016-11-20
已采納回答 / qq_習(xí)慣就好_11
package com.xu.io;import java.io.BufferedReader;import java.io.BufferedWriter;import java.io.FileReader;import java.io.FileWriter;import java.io.IOException;import java.util.Arrays;public class FileRead { public static void main(String[] args) throws IOEx...
2016-11-18
最新回答 / chrealcool
txt文本的編碼是ansi,雖然你寫入時設(shè)置了gbk(txt文件中可以正常顯示)但是控制臺輸出的編碼是utf-8和ansi不相符合,所以出現(xiàn)亂碼。個人意見,還請指正.
2016-11-15