使用缓冲区:可以使用BufferedOutputStream类包装字节输出流,使用缓冲区写文件。这种方式可以减少磁盘IO的次数,提高写文件的效率。
使用数组:可以将数据写入字节数组中,然后一次性将整个数组写入文件。这种方式可以减少IO *** 作的次数,提高写文件的效率。
多线程写文件:可以使用多个线程同时写文件,这种方式可以利用多核CPU的优势,提高写文件的速度。
禁用同步:可以禁用OutputStream类中的同步 *** 作,这样可以减少线程切换和锁竞争,提高写文件的效率。但是需要注意,禁用同步可能会导致数据写入不安全,需要谨慎使用。
需要根据具体的场景和需求选择适合的方法来提高写文件的速度。另外,在进行文件IO *** 作时,还需要注意合理使用缓存和关闭资源等问题,以保证程序的性能和稳定性。
while((is.read(buffer))!=-1){os.write(buffer)
}
这几行有问题,,,is.read(buffer)方法的返回值表示读取的有效字节数,你的buffer数组长度是4*1024,但是每次读取不可能都是这么多字节,而os.write(buffer)则是每次都是写入4*1024个字节,所以新的文件肯定比旧的文件大,,,,改写方法如下:
int len = 0
while((len = is.read(buffer)) != -1)
{
os.write(buffer,0,len)
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)