Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/370.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_Android_File - Fatal编程技术网

Java 已创建目录而不是文件

Java 已创建目录而不是文件,java,android,file,Java,Android,File,我想创建新文件,但它将创建目录。。。我尝试了很多方法。。在我的应用程序的不同部分创建新文件工作良好 public void copyDatabaseFromAssets() throws IOException { InputStream inputStream = app.getAssets().open(Static.DATABASE_FILE_NAME); File directory = new File(getInternalDataba

我想创建新文件,但它将创建目录。。。我尝试了很多方法。。在我的应用程序的不同部分创建新文件工作良好

public void copyDatabaseFromAssets() throws IOException {
            InputStream inputStream = app.getAssets().open(Static.DATABASE_FILE_NAME);
            File directory = new File(getInternalDatabaseFolder());
            boolean exist = directory.exists();
            boolean isDirecotry = directory.isDirectory();
            boolean isFile = directory.isFile();
            if(!directory.exists())directory.mkdirs();
            File targetFile = new File(directory.getAbsolutePath(),Static.DATABASE_FILE_NAME);
            boolean exist2 = targetFile.exists();
            boolean isDirecotry2 = targetFile.isDirectory();
            boolean isFile2 = targetFile.isFile();
            boolean created = targetFile.createNewFile();
            FileTool.copyDataBaseFromAssets(inputStream,targetFile);
        }
调试->

directory = /data/data/***/databases   
exist = true    
isDirectory = true   
isFile = false

targetFile = /data/data/***/databases/database.sqlite   
exist2 = true    
isDirectory2 = true
isFile2 = false    
created = false
错误->

java.io.FileNotFoundException: /data/data/***/databases/database.sqlite: open failed: EISDIR (Is a directory)

exist2
表示它已经存在,并且
isDirectory2
表示它是一个文件夹。尝试删除
database.sqlite
并再次运行相同的代码

是否确实正在查看
isdirectry2
isFile2
?尝试删除
boolean created=targetFile.createNewFile()根据您在
copyDataBaseFromAssets
中使用的内容,文件可能会自动创建。我编辑了问题,调试完成我删除了createNewFile()。。但是我还是得到了目录也许你创建了这个文件作为目录(例如,在测试时意外),它仍然是目录我以前已经创建了一个文件,然后我忘了删除这个坏目录。。谢谢你