我正在将数据从一个文件复制到另一个文件。
这需要更多的时间。原因是什么?
我的代码在这里
public void copyData( InputStream in, OutputStream out ) throws IOException { try { in = new CipherInputStream( in, dcipher ); int numRead = 0; byte[] buf = new byte[512]; while ( ( numRead = in.read( buf ) ) >= 0 ) { out.write( buf, 0, numRead ); } out.close(); in.close(); } catch ( java.io.IOException e ) { } }
null
请检查代码,我所做的是增加缓冲区大小和刷新数据,只要它触及1 MB,这样你就不会遇到内存不足的错误。
原因主要是由于缓冲区太小,在写入小字节的信息时需要时间。最好一次放一大块。
您可以根据需要修改这些值。
public void copyData( InputStream in, OutputStream out ) throws IOException
{
try
{
int numRead = 0;
byte[] buf = new byte[102400];
long total = 0;
while ( ( numRead = in.read( buf ) ) >= 0 )
{
total += numRead;
out.write( buf, 0, numRead );
//flush after 1MB, so as heap memory doesn't fall short
if (total > 1024 * 1024)
{
total = 0;
out.flush();
}
}
out.close();
in.close();
}
catch ( java.io.IOException e )
{
}
}
我们正在努力从Maven迁移到Gradle。不幸的是,我们还有几个战争复盖物要处理。
本文向大家介绍linux把一个文件的内容复制到另一个文件的末尾,包括了linux把一个文件的内容复制到另一个文件的末尾的使用技巧和注意事项,需要的朋友参考一下 问题描述: 比如11的文件内容是: hello 22的文件内容是: world 将22的文件内容复制到11文件的末尾,11文件的效果就是: hello world 解决办法: cat 22 >> 11 >>的意思是追加的意思 > 的意思是重
问题内容: 我想将某些文本行从一个文本文件复制到另一个文件。在我当前的脚本中,当我搜索字符串时,它会随后复制所有内容,如何只复制文本的特定部分?例如,仅在其中包含“ tests / file / myword”的情况下才复制行? 当前代码: 问题答案: 单线: 推荐搭配: 使用更少的内存:
我必须将ant项目转换为gradle项目。在这里,当我运行gradle构建时,它创建了war文件,当它部署在服务器上时,分解的war文件夹有两个文件夹META-INF和WEB-INF,我的要求是1。将web.xml从图像中看到的config文件夹复制到WEB-INF文件夹,并将图像中看到的jsp文件夹复制到分解文件夹
//我得到的错误是java。尼奥。文件FileAlreadyExistsException所以据我所知,它试图将文件保存到确切的位置,而不是保存在文件中,如果我将目标地址改为“垃圾/垃圾”,我需要以这种方式保存几个文本文件。它将在那里保存一个名为垃圾的文件。txt。但在for-each的下一个循环中,它会抛出一个“已经存在”的异常。。。 有人能解释一下我如何从src文件夹将所有txt文件保存到该文