gpt4 book ai didi

java - 使用 BufferedOutputStream 创建大文件需要很长时间

转载 作者:行者123 更新时间:2023-12-01 13:41:41 27 4
gpt4 key购买 nike

我有一个文件,其中包含一个写入文件开头的序列化 String 对象,后跟我尝试提取的文件的原始字节。

这是我的代码:

FileInputStream fileInputStream = new FileInputStream("C:\Test.tst");
ObjectInputStream objectInputStream = new ObjectInputStream(fileInputStream);
String string = (String) objectInputStream.readObject();
FileOutputStream fileOutputStream = new FileOutputStream("C:\ExtractedTest.tst");
BufferedOutputStream bufferedOutputStream = new BufferedOutputStream(fileOutputStream);
while(fileInputStream.available())
{
int i = fileInputStream.read();
bufferedOutputStream.write(i);
}
bufferedOutputStream.close();
fileOutputStream.close();

对于大文件(例如 1.5 GB),代码需要很长时间才能使用。我怎样才能加快代码速度?我使用了错误的类吗?

问候。

最佳答案

首先,我猜你不需要:

ObjectInputStream objectInputStream = new ObjectInputStream(fileInputStream);
String string = (String) objectInputStream.readObject();

...你的循环应该看起来更像这样:

final byte[] temp = new byte[1000];
while (fileInputStream.available() > 0){
int i = fileInputStream.read(temp);
bufferedOutputStream.write(temp, 0, i);
}

关于java - 使用 BufferedOutputStream 创建大文件需要很长时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20701686/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com