字節(jié)緩沖流BufferedInputStream讀取結(jié)束返回-1的不解之處
如下代碼中:
BufferedInputStream?bis?=?new?BufferedInputStream(new?FileInputStream(srcFile)); BufferedOutputStream?bos?=?new?BufferedOutputStream(new?FileOutputStream(destFile)); int?c; while((c?=?bis.read())?!=?-1)?{ ????bos.write(c); }
API中提示說 java.io.BufferedInputStream.read()
Returns:
the next byte of data, or -1 if the end of the stream is reached.
那么讀取的字節(jié)如果是1111 1111 不就是-1?
這個(gè)字節(jié)如果是我們的數(shù)據(jù),而不是文件讀取結(jié)束標(biāo)志呢?
為什么可以用-1來判定文件讀取結(jié)束?
2016-12-07
單字節(jié)讀取,無符號返回0-255數(shù),若是1111 1111則是返回255而不是-1,所以出現(xiàn)-1的情況只能是沒有字節(jié)可以讀取也就是作為文件讀取結(jié)束的標(biāo)志。
2016-09-20
好像是這么一回事:
單個(gè)字節(jié)讀取,字節(jié)以無符號整數(shù)返回0~255,不會有負(fù)數(shù)返回,
所以讀取單個(gè)字節(jié)可以用返回值-1表示文件讀取結(jié)束。
2016-09-12
你只需要知道它返回 -1 就是讀完了就行了,望采納。
2016-09-12
-1來判定文件讀取結(jié)束,是一種約定的方法!表示文件讀取完成!