JAVA 读文件一定得创建byte数组????为什么?
6个回答
展开全部
看情况吧...
当然你心情好了可以一个字节一个字节的读;
为什么要用byte,其实java读写文件调用的依然是底层操作系统的接口.
在操作系统层面数据时按照块来读的.
申请byte数组的目的是在jvm中开辟一块空间,然后调用jvm操作指令,jvm根据指令告诉操作系统,把这块数据给我填满.操作系统填满之后,java就返回了.
为什么要用byte?因为byte是数据存储的最小单位了.
所以byte[]数组就是一次性读取多少个最小单位,然后返回.
这只是简单的描述,要更详细的了解,建议读java language specification (jls),jls3好像是1.5,1.6的jls7是jdk1.7的.还有就是操作系统原理相关的书.
只能回答这么多了,再深的我也不懂~
当然你心情好了可以一个字节一个字节的读;
为什么要用byte,其实java读写文件调用的依然是底层操作系统的接口.
在操作系统层面数据时按照块来读的.
申请byte数组的目的是在jvm中开辟一块空间,然后调用jvm操作指令,jvm根据指令告诉操作系统,把这块数据给我填满.操作系统填满之后,java就返回了.
为什么要用byte?因为byte是数据存储的最小单位了.
所以byte[]数组就是一次性读取多少个最小单位,然后返回.
这只是简单的描述,要更详细的了解,建议读java language specification (jls),jls3好像是1.5,1.6的jls7是jdk1.7的.还有就是操作系统原理相关的书.
只能回答这么多了,再深的我也不懂~
展开全部
读取文件一般都用二进制吧,而java的FileInputStream也只支持byte[]。
当然,你也可以用BufferedReader来读文本文件,通过readLine来一行一行读,这个函数返回的是String
BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream("c:\\youfilepath"),"UTF-8"));
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
不一定,读文件的方法有很多,有字符IO,也有字节数据IO,相对而言通过读字节效率要高一些,但是具体用何种方法读文件,这的视情况而定!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2013-05-08
展开全部
按二进制读,就一定要; 按字符串读,可以不用byte[]
追问
如果不按二进制、字符串读呢?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
因为只能读二进制的串,所以。。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |