本帖最后由 水蓝 于 2014-3-13 09:22 编辑
我这边用Noptepad++看了一下输出的fos.txt。如下图:
给楼主分析一下原因吧。
首先,FileOutputStream的write方法是逐个字节向文件中输出。
下面是你代码中5次调用write方法写入的字节码:(后面的括号为注释)
5(这个就是传说中的'ENQ',上图有红色圈圈出)
13,10(这个是换行符)
104, 101, 108, 108, 111, 32, 106, 97, 118, 97(这个是“hello java”)
13,10(这个是换行符)
108, 108, 111, 32, 106(这个是你从“hello java”字符串中,从下标2开始,向后截取5个字节后的输出)
关于为什么写入5是‘ENQ’,我们可以参考一下ASCII码表:
如下图所示,ASCII码表中的值为5的位置,就是‘ENQ’的意思
最后,建议楼主以后在查看程序输出文件时,少用记事本。建议用(UE,或者Notepad++)
|