整个过程以及结果为什么是这样啊(语言-java)

整个过程以及结果为什么是这样啊(语言-java)

整个过程以及结果为什么是这样啊(语言-java)

img

说答案之前,先说一说前面一大串代码到底在干什么
你理解了代码才好理解后续的值为什么是这样的
首先有一个数组a,长度是4,里面存的是abcd,将它写入流
然后定义一个数组tom,长度是3,从流里读数据,写入tom,打印,再读,再打印
-=-=-=-=
1.m是in.read的返回值,返回的是读取的字节数,tom有3个字节长度,返回3,所以m=3
2.s是将tom转换成字符串,tom里存的是从a里写入流又读回来的数据,a里是abcd,写入了4个字节,而tom长度只有3,所以只读回来3个字节,所以就是abc
3.再次从流里读入,流里还剩个字母d没有读,所以这次读到的字节数是1,m=1
4.再次打印tom,tom[0]被d覆盖了,1和2没变,所以是dbc