2 qq 33530738 qq_33530738 于 2016.01.22 21:15 提问

inputstream.read(byte[] b,int off,int len)和write读写硬盘次数?

java中inputstream.read(byte[] b,int off,int len)和write读写硬盘次数,
每次调用inputstream.read(byte[] b,int off,int len)是访问硬盘一次吗,还是访问硬盘len次?
如果只是访问一次,byte[]的长度、len等于BufferedInputStream的缓冲区的大小,那么inputstream与BufferedInputStream的效率,访问硬盘次数是不是没有区别?

3个回答

caozhy
caozhy   Ds   Rxr 2016.01.22 21:20

操作系统、硬盘都是有缓冲的,所以你不能知道真正的物理读写次数。

Evankaka
Evankaka   Ds   Rxr 2016.01.22 23:14

java IO中才会使用内存缓冲,意思是等你需要时,一部分一部的将文件读取到内存缓冲区,然后程序空间再去取。保存时也是同理 。缓冲区设置
越大,肯定读盘次数会小。对于大数据读取,可以看看JAVA NIO.

Mr_dsw
Mr_dsw   Ds   Rxr 2016.01.23 12:26

同意二楼,这个读写硬盘的次数却实不敢说

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
write(byte b[], int off, int len)详解
b 这一次写的数据 off 从b的第off个开始写
java.io.InputStream.read(byte[] b, int off, int len)
java.io.InputStream.read(byte[] b, int off, int len) 方法从输入流读取转换为字节数组数据达到len个字节。如果参数len为0,则读取任何字节并返回0;否则有尝试读取至少一个字节。如果该流是在该文件的末尾,则返回的值为-1。 声明 以下是java.io.InputStream.read(byte[] b, int off, int le
InputStream当中read()、read(byte[] b)、read(byte[] b、int off 、int len)的使用
下面就说说InputStream当中read()、read(byte[]  b)、read(byte[] b、int off 、int len)的使用以及区别(以txt文本的复制为例通过代码以及注释说明): 一、read()方法: public static void inputStreamRead1() {       try{             //构造一
write(byte b[], int off, int len)与write(byte b[])
在进行写文件的时候有时候返现,通过write(byte b[])方式写文件比原来的文件大一些。流程代码: public static void main(String[] args) throws Exception { long t1 = System.currentTimeMillis(); File file = new File("d:/11.jpg
java中write(byte[] b)与write(byte[] b,int off,int len)区别
在项目中要做图片上传功能,由于用了struts2 文件上传方便了很多,在actoin中增加如下方法就可以了: private static final int BUFFER_SIZE = 16 * 1024; private static void copy(File src, File dst) {         try {             InputStrea
java.io.OutputStream.write(byte[] b, int off, int len)方法实例
java.io.OutputStream.write(byte[] b, int off, int len) 方法从指定的字节数组开始到当前输出流关闭写入len字节。一般的合约write(b, off, len),一些在数组b中的字节写入,以便输出流;元素b[off]是写入的第一个字节和b[off+len-1]是写的这个操作的最后一个字节。OutputStream的write方法调用的每个被写出其
java.io.InputStream.read(byte[] b) 与(byte[] b, int off, int len)
InputStream in = item.getInputStream(); OutputStream out = new FileOutputStream(fileName); byte[] buffer = new byte[1024]; int len = 0; ...
浅谈write(byte[] b)和write(byte[] b,int off,int len)的区别
举例新建一个类  package io;  import java.io.ByteArrayInputStream;  import java.io.File;  import java.io.FileInputStream;  import java.io.FileNotFoundException;  import java.io.FileOutputStream; 
教你完全理解IO流里的 read(),read(byte[]),read(byte[],int off,int len)以及write
len的作用 write(bytes);不严谨,后续有空的 write(bytes,0,len);严谨,和原来一模一样
原理讲解-ServletInputStream.readLine(byte[] b, int off, int len) 方法
原理讲解-ServletInputStream.readLine(byte[] b, int off, int len) 方法原理讲解-ServletInputStream.readLine(byte[] b, int off, int len) 方法