gpt4 book ai didi

java - 使用 file.available() 显示 in.readObject() 读取一个大对象的进度时发生冲突

转载 作者:行者123 更新时间:2023-12-02 08:05:04 24 4
gpt4 key购买 nike

我有一个大对象(大约 20MB),有时会写入磁盘或从磁盘读取。执行此操作并等待完成没有任何问题,但需要大约一分钟,我喜欢使用进度条显示发生的情况。

我的读取代码如下:

InputStream file = new FileInputStream(filename);

// start a thread using file.available() to update a progress bar...
InputStream buffer = new BufferedInputStream(file);
ObjectInputStream in = new ObjectInputStream(buffer);
site = (Site) in.readObject();
in.close();
buffer.close();
file.close();

只要我不不间断地连续调用 file.available() ,一切都可以正常工作。似乎在 in.readObject() 处于 Activity 状态时调用 file.available() 有时会导致冲突。推迟似乎是愚蠢的举动。请有人告诉我正确的方法。

最佳答案

您可以添加字节计数输入流。这可以告诉您已读取了多少数据,您可以将其与实际文件大小进行比较以获得进度。

也许你可以解释为什么 file.available() 不起作用。你得到什么错误?

关于java - 使用 file.available() 显示 in.readObject() 读取一个大对象的进度时发生冲突,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8296391/

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