java.io.FileInputStream.read()的返回值类型为什么是int而不是byte

cjapm 2009-11-21 11:32:28
刚在Sun的网站上读到一篇文档,文中提到关于java.io.FileInputStream.read()的返回值类型的问题。那段话是这么写的:

Notice that read() returns an int value. If the input is a stream of bytes, why doesn't read() return a byte value? Using a int as a return type allows read() to use -1 to indicate that it has reached the end of the stream.


我刚查了一下JDK的文档,byte类型的取值范围是-2^7到2^7-1,说明-1在此范围内,如果仅仅为了返回-1的话完全可以用byte作为返回类型的啊?
请高人指点,谢谢!


原文链接如下:http://java.sun.com/docs/books/tutorial/essential/io/bytestreams.html
...全文
733 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
weinianjie1 2010-12-15
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 feiyuhen2006 的回复:]

引用 1 楼 beiouwolf 的回复:
这和取值范围没关系....
read返回的是读取的字节数


你说的只是其中的一个方法,还有一个重载的函数返回值是 int 而且返回的是文件的具体内容
楼主的问题值得 研究 等待高手解答
[/Quote]
正解
feiyuhen2006 2009-11-22
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 beiouwolf 的回复:]
这和取值范围没关系....
read返回的是读取的字节数
[/Quote]

你说的只是其中的一个方法,还有一个重载的函数返回值是 int 而且返回的是文件的具体内容
楼主的问题值得 研究 等待高手解答
beiouwolf 2009-11-21
  • 打赏
  • 举报
回复
这和取值范围没关系....
read返回的是读取的字节数

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧