Re: [問題] 請問readbyte()跟read() 有什麼不同?
※ 引述《alen127 (小印)》之銘言:
: read() 它是用來讀出資料中單一的無號位元組,傳回無號位元組的整數值
: 也就是說它所傳回的值只在0~255之間
: 至於readByte() 它也是讀取單一位元組,但是不同餘的部分就在於它所回傳的值卻是在
: -128~127之間的有號byte()
: 也就是這兩個不同地方就在於 一個回傳值是0~255 另一個是-128~127
: 這應該是最大的不同點吧,以上是個人知道的部分假如在下有所錯誤
: 請麻煩糾正一下 因為有糾正才會進步...多謝!!
hi,
因為自己也蠻好奇的..
所以剛剛把jdk15的這段code拿出來直接看差別..
分享一下心得 囧"
FileInputSteam的int read()
是直接用java native的read指令讀一個byte
(因為要用無號表示..所以用 int 來存 0~255 ? )
[code]
public native int read() throws IOException;
[/code]
DataInputStream byte readByte()
其實只是把 read 的結果再 cast 到 byte而已..
[code]
public final byte readByte() throws IOException {
int ch = in.read();
if (ch < 0)
throw new EOFException();
return (byte)(ch);
}
[/code]
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 220.139.145.136
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 3 之 3 篇):