我的java程序一直认为每个新文件都不是文件而是文件夹。
我一直在寻找漏洞,现在它不会让我使用FileWriter
保存文件。如果我创建一个新文件,然后检查它是文件还是目录,它说它是一个目录。
我最初有一条很长的路径,所以我摆脱了它。我也曾经在一个单独的线程中完成了写作,并且也摆脱了它,但问题仍然存在。
如果我创建一个新类,只需一个简单的
java.io.File file = new java.io.File("test.csv");
output.print(file.isDirectory());
这是真实的。
然而,我仍然可以使用javax.imageio保存图形。*
有人可以帮忙吗?
编辑:我正在使用eclispe 3.7.2和java 1.7.0 ... File.isFile()为false,File.createNewFile()失败(java.io.FileNotFoundException(拒绝访问))。查看我指定的目录时,有一个名为test.csv的新文件夹。因此它创建了一个新文件夹,并将其视为一个文件夹,尽管我指定它是一个csv文件。我尝试过其他文件类型,甚至没有文件类型。但同样的问题。它认为它是一个文件夹而不是文件。这让我很困惑。
答案 0 :(得分:9)
Java的new File()
自己不创建文件或目录。所以你应该展示你的代码。我怀疑你的某处有file.mkdirs();
- 如果你的file
指的是“test.csv”,那么将创建一个名为“test.csv”的目录
答案 1 :(得分:1)
在您的示例代码中,您尚未实际创建该文件。对于我们的娱乐,您还可以打印file.isFile()
的价值吗?
然后做同样的事情,但请致电,例如file.createNewFile()
首先,以实际获取文件。
答案 2 :(得分:0)
我认为你错了一些东西,maby你有一个目录,我们所在的程序与你试图创建的文件相同,你可以使用isFile()函数来测试这个它不是一个文件,并尝试使用getAbsolutePath()获取路径以本地化设置此目录的位置。
答案 3 :(得分:0)
发现问题。正如所料,这是我自己的愚蠢,正如我所知道的那样。在将文件名添加到文件路径后,我移动了File.mkdirs()方法,生成完整路径,包括文件,目录。然后我无法写信,因为它已经被创建为目录。
我可以发誓我在没有mkdirs()命令的情况下测试了它,但我猜不是。那好吧。再抓一点愚蠢而没有正确删除所有可能的选项。
感谢所有提示!