1

我是 Java 新手。FileInputStream我尝试使用基本的andFileOutputStreambufferedInputStreamand来做一个文件复印机应用程序bufferedOutputStream。我使用进度条来显示进度并且它有效。一切都很好。我添加了catch子句FileNotFoundException来报告错误。同样,当我尝试从损坏的磁盘复制文件时,它复制到一定程度并静止不动。如何检测read errors. 有catch条款吗?请帮我。

4

2 回答 2

2

对此没有真正的解决方案。Java 依赖操作系统来进行低级文件 I/O。如果操作系统在重试读取损坏的文件时决定冻结很长时间,那么 Java 应用程序对此无能为力。

如何检测读取错误。有catch条款吗?

如果 / 当read操作最终失败时,您将获得某种 IOException。但是为异常添加一个 catch 不会做任何事情来解除停滞的读取请求。

从损坏的磁盘中恢复数据不是您应该在 Java 中尝试做的事情。您需要编写一个可以在磁盘块级别访问磁盘设备的本机应用程序。或者更好的是,使用现有的数据恢复工具。

于 2012-04-10T16:09:39.453 回答
0

当你对你的和对象(resp.)做你的read()write()声明时,如果从文件系统读取或写入文件系统时出现问题,则可能会从本机部分出现。您可以像捕获 一样的方式捕获它,并查看其消息以获取有关特定错误的更多信息。FileInputStreamFileOutputStreamIOExceptionFileNotFoundException

于 2012-04-10T16:15:14.237 回答