我有一个java应用程序,它从一堆文本文件(大约值50gbs)中读取。每个文件的大小从5kb到35mb不等。文件本身是从另一个java应用程序创建的,该应用程序是按需运行的,但已经一周左右没有运行了。该文件使用许多分隔符,如
|,
我的应用程序运行良好,但最近开始抛出一个数字格式错误。经过检查,我发现其中一个逗号被翻成了$
0.4391622970.43081,6.76182 527640691.38786,|10,
我的问题是。这种"翻转"是否可能是由于驱动器损坏而发生的?整个文件中只有一个字符会更改,这似乎有点牵强。文件上的时间戳验证它没有被另一个程序"意外"修改。
这件事真让我头疼。
这不太可能,但绝对有可能。事实上,只有一个比特必须在a(00100100)和a(00101100)之间变化。磁盘通常内置了校验和和和纠错码等功能,这样,如果确实发生了损坏,它们就可以进行更正,或者至少让您知道它已经发生。但是,无声腐败并非闻所未闻,与传统硬盘相比,SSD可能更容易发生这种情况。
不过,首先要看的肯定是生成文件的代码。
原来是驱动器损坏。运行了CHKDISK并出现错误。