黑马程序员技术交流社区
标题:
File.leng()和FileinputStream.aviailable()方法使用上有什么区别
[打印本页]
作者:
梦想蓝色天空
时间:
2013-5-29 19:10
标题:
File.leng()和FileinputStream.aviailable()方法使用上有什么区别
本帖最后由 梦想蓝色天空 于 2013-5-31 07:49 编辑
File.leng()和inputStream.aviailable()方法使用上有什么区别,感觉都是取得长度的 一般在什么时候用哪个
作者:
梦想蓝色天空
时间:
2013-5-30 07:09
求教,求真相
作者:
袁梦希
时间:
2013-5-30 09:55
研究的很深,佩服了
作者:
原满
时间:
2013-5-30 16:56
那个方法应该是File.length()吧 另一个应该是FileInputStream.available()
首先 File类是用来操作文件的,而不能访问文件的具体内容 比如文件的删除 判断是否存在等等
File.length()方法是用来返回由此抽象路径名表示的文件的长度
FileInputStream类 是用来操作流的 也就是可以访问文件里的具体内容
FileInputStream类的 read() 以及 read(byte[] b)方法 无论是一次读取一个字节的read() 还是 通过字节数组 一次读取一个 数组内容的 read(byte[] b) 方法,都需要用while循环,来循环读取文件内容, 以read()方法的返回值是否为-1作为判断循环结束的依据 而read 方法是阻塞的 ,每循环一次都要 阻塞, 而FileInputStream.available() 方法返回 可以不受阻塞地从此输入流中读取(或跳过)的估计剩余字节数。这样可以定义一个刚刚好的 byte[]数组(如果返回值不是很大的情况下,否则定义数组过大容易导致内存溢出) 一次从输入流中把全部内容读走,这样不需要用循环,从而提高效率
作者:
刘胜寒
时间:
2013-5-31 00:45
如果问题以解决,请结贴,未解决追加提问。谢谢合作
作者:
梦想蓝色天空
时间:
2013-5-31 07:48
原满 发表于 2013-5-30 16:56
那个方法应该是File.length()吧 另一个应该是FileInputStream.available()
首先 File类是用来操作文件的, ...
非常感谢,你这么一说,顿时明白了好多,谢谢:loveliness:
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2