JAVA 读文件一定得创建byte数组????为什么?

如题所述

看情况吧...
当然你心情好了可以一个字节一个字节的读;
为什么要用byte,其实java读写文件调用的依然是底层操作系统的接口.
在操作系统层面数据时按照块来读的.
申请byte数组的目的是在jvm中开辟一块空间,然后调用jvm操作指令,jvm根据指令告诉操作系统,把这块数据给我填满.操作系统填满之后,java就返回了.

为什么要用byte?因为byte是数据存储的最小单位了.
所以byte[]数组就是一次性读取多少个最小单位,然后返回.

这只是简单的描述,要更详细的了解,建议读java language specification (jls),jls3好像是1.5,1.6的jls7是jdk1.7的.还有就是操作系统原理相关的书.
只能回答这么多了,再深的我也不懂~
温馨提示:内容为网友见解,仅供参考
第1个回答  2013-05-08

读取文件一般都用二进制吧,而java的FileInputStream也只支持byte[]。

当然,你也可以用BufferedReader来读文本文件,通过readLine来一行一行读,这个函数返回的是String

BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream("c:\\youfilepath"),"UTF-8"));

第2个回答  2013-05-08
不一定,读文件的方法有很多,有字符IO,也有字节数据IO,相对而言通过读字节效率要高一些,但是具体用何种方法读文件,这的视情况而定!
第3个回答  2013-05-08
按二进制读,就一定要; 按字符串读,可以不用byte[]追问

如果不按二进制、字符串读呢?

第4个回答  2013-05-08
因为只能读二进制的串,所以。。
相似回答