BufferedInputStream为什么不能readLine?

baidusinazero 2012-03-13 12:30:03
而BufferedReader却可以呢?好像Reader类型的都可以读一行或者写一行字符串,可是为什么字节却不能读写一行呢,字节串?请问我钻牛角尖了吗?
...全文
619 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
hhgzxn 2012-04-02
  • 打赏
  • 举报
回复
BufferedReader的 readLine()是靠换行 ('\n')、回车 ('\r') 判断一行的,而BufferedInputStream没有办法读取换行 ('\n')、回车 ('\r') ,所以没有readLine(),这是我的理解。
安特矮油 2012-03-13
  • 打赏
  • 举报
回复
一个字符是两个字节。这个没问题吧。那么很明显一个换行符也是一个字符,那么你的字节流如何能确认你读的这个字节是否是换行符?既然这样那么怎么可能每行每行的去读
baidusinazero 2012-03-13
  • 打赏
  • 举报
回复
英文和数字也算是一个字符吗?reader是一个字符一个字符的读,而inputStream是一个字节一个字节的读,但前者可读一行,后者不行,这是我不能理解的地方。[Quote=引用 1 楼 jzh440 的回复:]

因为字节的范围是-127~128,一个字符占两个字节,他能表示多少个字符?显然读一行不行。
[/Quote]
pengfeituzi2010 2012-03-13
  • 打赏
  • 举报
回复
BufferedInputStream 也只是个inputStream而已,只不过带了buffer,他应该是读取字节流的,怎么可以readline呢?
GIS的粉刷匠 2012-03-13
  • 打赏
  • 举报
回复
因为字节的范围是-127~128,一个字符占两个字节,他能表示多少个字符?显然读一行不行。

噢噢噢噢 2012-03-13
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 baidusinazero 的回复:]

哦,有点明白。那假如byte b = 128,128算是三个字符还是一个字节?引用 4 楼 abstruct 的回复:

一个字符是两个字节。这个没问题吧。那么很明显一个换行符也是一个字符,那么你的字节流如何能确认你读的这个字节是否是换行符?既然这样那么怎么可能每行每行的去读
[/Quote]

一个字节啊!!
128在内存中就是10000000 八个二进制位,也就是一个字节
而String str = "128" 占24个二进制位 三个字节
baidusinazero 2012-03-13
  • 打赏
  • 举报
回复
哦,有点明白。那假如byte b = 128,128算是三个字符还是一个字节?[Quote=引用 4 楼 abstruct 的回复:]

一个字符是两个字节。这个没问题吧。那么很明显一个换行符也是一个字符,那么你的字节流如何能确认你读的这个字节是否是换行符?既然这样那么怎么可能每行每行的去读
[/Quote]

62,614

社区成员

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

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