我是 Java 新手。FileInputStream
我尝试使用基本的andFileOutputStream
和bufferedInputStream
and来做一个文件复印机应用程序bufferedOutputStream
。我使用进度条来显示进度并且它有效。一切都很好。我添加了catch子句FileNotFoundException
来报告错误。同样,当我尝试从损坏的磁盘复制文件时,它复制到一定程度并静止不动。如何检测read errors
. 有catch条款吗?请帮我。
问问题
159 次
2 回答
2
对此没有真正的解决方案。Java 依赖操作系统来进行低级文件 I/O。如果操作系统在重试读取损坏的文件时决定冻结很长时间,那么 Java 应用程序对此无能为力。
如何检测读取错误。有catch条款吗?
如果 / 当read
操作最终失败时,您将获得某种 IOException。但是为异常添加一个 catch 不会做任何事情来解除停滞的读取请求。
从损坏的磁盘中恢复数据不是您应该在 Java 中尝试做的事情。您需要编写一个可以在磁盘块级别访问磁盘设备的本机应用程序。或者更好的是,使用现有的数据恢复工具。
于 2012-04-10T16:09:39.453 回答
0
当你对你的和对象(resp.)做你的read()
和write()
声明时,如果从文件系统读取或写入文件系统时出现问题,则可能会从本机部分出现。您可以像捕获 一样的方式捕获它,并查看其消息以获取有关特定错误的更多信息。FileInputStream
FileOutputStream
IOException
FileNotFoundException
于 2012-04-10T16:15:14.237 回答