Java 如何在JProgressBar中显示读/写序列化的进度?

Java 如何在JProgressBar中显示读/写序列化的进度?,java,swing,file-io,monitoring,jprogressbar,Java,Swing,File Io,Monitoring,Jprogressbar,如何检查Java读/写序列化的进度并将其显示在JProgressBar中?需要完成的任务如下: 检查已读/写的字节数,并将其除以需要读/写的总字节数,得到一个百分比 将此值放入进度条,然后重新绘制JFrame以更新背景并显示JProgressBar 另一个问题可能是如何在阅读或写作中做到这一点,因为两者都非常不同。如果无法完成写入操作,则可以,但监视读取是一个优先事项。检查读取操作的进度与写入操作非常不同。涵盖了获取对象大小这一问题,如下所述: “…要知道即将进行的序列化的大小,没有有用的方法,

如何检查Java读/写序列化的进度并将其显示在
JProgressBar
中?需要完成的任务如下:

  • 检查已读/写的字节数,并将其除以需要读/写的总字节数,得到一个百分比
  • 将此值放入进度条,然后重新绘制JFrame以更新背景并显示JProgressBar

  • 另一个问题可能是如何在阅读或写作中做到这一点,因为两者都非常不同。如果无法完成写入操作,则可以,但监视读取是一个优先事项。

    检查读取操作的进度与写入操作非常不同。涵盖了获取对象大小这一问题,如下所述: “…要知道即将进行的序列化的大小,没有有用的方法,只能执行两次,一次是对ByteArrayOutputStream进行测量,另一次是对真实目标进行测量,这是非常浪费的。”

    如果序列化后的对象的大小无法在序列化之前记录,则我无法跟踪进度


    就阅读而言,使用ProgressMonitorInputStream跟踪进度要简单得多,并且有一个关于如何使用它的指南。

    “干杯,evared”不包括SIG。有疑问。它们是噪音。请使用
    SwingWorker
    。有关详细信息,请参阅。您在什么时候知道流的大小?在加载JProgressBar之前,我使用length()查找文件的大小(以字节为单位),以便将大小传递到该条并将其设置为最大值。现在我需要做的就是查看有多少文件已加载到JVM中,并相应地设置JProgressBar。