Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/316.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
java认为新文件是文件夹_Java_File - Fatal编程技术网

java认为新文件是文件夹

java认为新文件是文件夹,java,file,Java,File,我的java程序一直认为每个新文件都不是一个文件,而是一个文件夹 我一直在寻找bug,现在它不允许我使用FileWriter保存文件。如果我创建一个新文件,然后检查它是一个文件还是一个目录,它会说它是一个目录 我最初创建了一条很长的路径,所以我去掉了它。我也曾经在一个单独的线程中完成写作,并且也摆脱了它,但问题仍然存在 如果我创建一个新类,只需要一个简单的 java.io.File file = new java.io.File("test.csv"); output.print(file.is

我的java程序一直认为每个新文件都不是一个文件,而是一个文件夹

我一直在寻找bug,现在它不允许我使用
FileWriter
保存文件。如果我创建一个新文件,然后检查它是一个文件还是一个目录,它会说它是一个目录

我最初创建了一条很长的路径,所以我去掉了它。我也曾经在一个单独的线程中完成写作,并且也摆脱了它,但问题仍然存在

如果我创建一个新类,只需要一个简单的

java.io.File file = new java.io.File("test.csv");
output.print(file.isDirectory());
事实证明这是真的

但是,我仍然可以使用javax.imageio保存图形*

有人能帮忙吗

编辑:我正在使用Eclispe3.7.2和Java1.7.0。。。
File.isFile()为false,File.createNewFile()失败(java.io.FileNotFoundException(访问被拒绝))。在我指定的目录中查找时,有一个名为test.csv的新文件夹。因此,它正在创建一个新文件夹,并将其视为一个文件夹,尽管我指定它是一个csv文件。我尝试过其他文件类型,甚至没有文件类型。但同样的问题。它认为它是一个文件夹而不是一个文件。这让我很困惑。

Java的
新文件()
不会自己创建文件或目录。所以你应该展示你的代码。我怀疑您有类似于
file.mkdirs()的东西某处-如果您的
文件
此时引用的是“test.csv”,那么将在示例代码中创建一个名为“test.csv”的目录

,您实际上还没有创建该文件。为了娱乐起见,您还可以打印
file.isFile()
的值吗


然后执行同样的操作,但首先调用例如
file.createNewFile()
来实际获取文件。

我认为您遗漏了什么,可能是因为您的程序所在的目录与您试图创建的文件名同,您可以使用该函数进行测试,以确保它不是文件,并尝试获取用于定位此目录设置位置的路径。

发现问题。不出所料,这是我自己的愚蠢,我知道这一定是。在将文件名添加到文件路径后,我移动了File.mkdirs()方法,使包括文件在内的完整路径成为目录。然后我无法写入它,因为它已经被创建为一个目录

我可以发誓我在没有mkdirs()命令的情况下测试了它,但我想不是。哦,好吧。再抓一个就愚蠢了,没有正确地删除所有可能的选项


谢谢你的提示

请帮助我们使用env-JDK,JRE,OS-etcIf-Java说它是一个目录,它是一个目录。有什么证据表明它不是?
publicstaticvoidmain(String[]args){java.io.File File=newjava.io.File(“test.csv”);System.err.println(File.isDirectory());//prints false System.err.println(File.isFile());//prints false System.err.println(File.exists());//prints false}
没有目录或文件。我正在创建一个新的。但无论我使用FileWriter(字符串)、FileWriter(文件)还是File.createNewFile(),它们都只是创建一个名为my filename(例如test.csv)的新文件夹,然后无法写入任何内容(给出java.io.FileNotFoundException(访问被拒绝)),因为当我需要文件时,它正试图写入新创建的文件夹。所以你是对的。这是一个文件夹(新创建的),但我想要一个文件,而不是一个文件夹!因此,您发现自己从一开始就是我告诉您的:您在尝试写入文件之前使用完整路径创建目录,然后在尝试写入文件时无法处理错误(目录中不能有重复的命名对象[甚至不同类型])@lbalazscs确实,仍然有可能是以某种方式首先创建了一个同名目录,但这在安装过程中确实是一个意外。抱歉,澄清一下:当使用FileWriter(文件)创建一个新文件时,由于java.io.FileNotFoundException(访问被拒绝)而失败(尽管我知道我有在那里写入的权限)。但是一旦运行了这个程序,如果我转到这个目录(无论我在路径中指定哪个目录),就会有一个名为MyFileName的新文件夹(例如test1.csv)。如果我使用File.createNewFile(),它将创建一个名为该文件名的新文件夹。由于某种原因,它无法创建新文件!因此,您发现的是我从一开始就告诉您的:您在尝试写入文件之前使用完整路径创建目录,然后您无法处理尝试写入文件的错误(目录中不能有重复的命名对象[甚至不同类型]),请记住最终接受答案,“即使是你自己的也没关系。”Darkraiy重新阅读了我最初的答案——这正是我告诉你的