字节转字符串时,为什么会有偏移量这种东西?
偏移之后这一组的字节剩下的东西是什么东西呢?? 哪来的呢?干什么用的呢??
比如在读文件流时,或者读屏幕输入时,为什么会有一些不需要的信息?他们是给谁用的? 为啥不直接过滤掉?
1 feiyuanqiu 2019-06-10 17:05:59 +08:00 因为这是给需要从字节数组里取一部分出来构造字符串的场景提供的,你完全可以用另一个构造函数: public String(byte bytes[]) { this(bytes, 0, bytes.length); } |
![]() | 2 akira 2019-06-10 17:09:48 +08:00 你需要的字符串 并不总是会从头开始的 需要根据实际情况来读取对应的结构 |
![]() | 3 rizon OP |
![]() | 4 rizon OP 专门为这个提供一个 offset 的概念,而不是让用户自己分割好之后在传进来,而且在流读取的时候也需要用这个。 说明偏移量是一个较底层的原因产生的东西,我想知道的就是他是怎么产生的,是由于计算机的什么导致的?比如是因为 CPU ? |
5 lff0305 2019-06-10 17:46:58 +08:00 比如你读文件要略过若干个字节的头部(比如 BOM ) 更多的情况是你从网络读了一些 byte 过来,要略过头尾 |
![]() | 6 U7Q5tLAex2FI0o0g 2019-06-10 17:58:34 +08:00 这种情况非常正常好不好,很多交互信息带了头(例如标志这条信息是什么东西)尾(例如校验位) |
![]() | 7 pmispig 2019-06-10 18:07:00 +08:00 我感觉这个方法多此一举,我自己会切割好再转。 |
![]() | 8 ArthurRen 2019-06-10 18:09:54 +08:00 via Android 楼上这么做会增加内存开销啊 |