Java FileWriter()文件损坏警告

Java FileWriter()文件损坏警告,java,excel,warnings,filewriter,corrupt,Java,Excel,Warnings,Filewriter,Corrupt,我有一个将jTable实例转换为excel文件的应用程序。在我的上一个问题中,我在使用FileOutputStream时遇到了一个问题,结果证明问题出在AD用户访问文件夹/文件的权限范围内。由于我的上级不允许我更改特权,我转而使用FileWriter,这很有效。唯一的问题是,它不断警告用户他们正在打开的文件已损坏。警告如下: 您试图打开的文件“filename.xls”的格式与文件扩展名指定的格式不同。打开文件之前,请确认文件未损坏且来源可靠。您想现在打开该文件吗 我搜索了一个位于Excel20

我有一个将jTable实例转换为excel文件的应用程序。在我的上一个问题中,我在使用FileOutputStream时遇到了一个问题,结果证明问题出在AD用户访问文件夹/文件的权限范围内。由于我的上级不允许我更改特权,我转而使用FileWriter,这很有效。唯一的问题是,它不断警告用户他们正在打开的文件已损坏。警告如下:

您试图打开的文件“filename.xls”的格式与文件扩展名指定的格式不同。打开文件之前,请确认文件未损坏且来源可靠。您想现在打开该文件吗

我搜索了一个位于Excel2007文件扩展名安全性中的解决方案。信息可以找到

我在应用程序覆盖的每个工作站的系统注册表中进行了一些配置


我只是想问一下,是否有一个方法可以删除Office 14中的损坏文件警告,因为其中一个工作站(我上级的工作站)有Office 14。系统注册表中的更改并没有阻止他工作站中的损坏文件警告。

我得到的印象是,你沉迷于巫毒编程实践;i、 e.将你不理解的解决方案应用到你不理解的问题上

首先,这:

我在使用FileOutputStream时遇到了一个问题,结果证明问题在于AD用户访问文件夹/文件的权限。由于我的上级不允许我更改特权,我转而使用FileWriter,这很有效

坦率地说,这没有道理。如果无法使用新的FileOutputStreamFile打开文件,则不能使用新的FileWriterFile打开该文件。为什么?因为构造函数的源代码如下所示:

    public FileWriter(File file) throws IOException {
        super(new FileOutputStream(file));
    }
换句话说,FileWriter构造函数要做的第一件事就是调用您说不起作用的FileOutputStream构造函数!!这同样适用于这些构造函数的其他重载

那么,您当前的问题实际上是Excel不允许您打开XLS文件,因为其文件类型与其后缀不匹配。而你提出的解决方案就是乱搞注册表。当然,正确的方法是找出文件类型与后缀不匹配的原因

您是否在文件格式上犯了错误,例如“因为您使用文件编写器编写了文件?”? 您是否为所使用的电子表格格式选择了错误的文件后缀? 您是否使用错误的MIMEtype将其下载到用户的计算机? 正在所有客户端计算机上打开注册表。。。就因为你在某个网站上读到。。。那是巫毒

你的老板不让你在广告上乱搞我一点也不奇怪。在这一点上,他可能担心你会造成严重的伤害


顺便说一句,你的注册表黑客攻击,使警告消失,实际上是关闭了一个安全检查,旨在帮助加强用户的PC对攻击。我觉得这并不能很好地解决您的问题。

您编写文件的格式是什么?如果它是一个没有格式的简单excel文件,您可以简单地使用扩展名为.csv的逗号分隔值文件。