今天在为手机端程序写从文件中读取数据的操作时,尝试使用readUTF和readFully函数时遭受挫折。原因:
- readUTF() 要求流的前两个字节提供UTF字节码长度,而使用notepad转换而来的文件,其格式是前三位是magic code: EF BB BF,后面是UTF字节码,导致读请求失败 :(
- readFully(byte[] b) 要求读出的字节长度与byte[]的长度相同,由于无法预知文件长度(或许有办法?),导致这个方法也不可行 :(
- 只能采用循环调用read(byte[] b)并且把读到的字节统统存到新的byte[],直至读完再进行UTF8转换。