Java:如果文件不存在,我无法为文件是不是存在创建条件。为啥?
Posted
技术标签:
【中文标题】Java:如果文件不存在,我无法为文件是不是存在创建条件。为啥?【英文标题】:Java: If file doesn´t exist I can´t create condition for file exist or not. Why?Java:如果文件不存在,我无法为文件是否存在创建条件。为什么? 【发布时间】:2020-05-20 14:41:22 【问题描述】:您好,这是一个比较文件夹是否存在的简单代码。
import java.io.*;
public class myfile
public static void main(String args[])
// Get the file
File f = new File("file_f.txt");
// Check if the specified file
// Exists or not
if (file_f.exists())
System.out.println("Exists");
else
System.out.println("Does not Exists");
System.out.println("I would like to run this possibility");
但我需要在文件夹不存在时执行代码。但是如果我删除创建文件夹,它会得到一个错误...... (在我的代码中,我需要检查文件夹是否存在,如果不存在,则代码已经开始执行。)那么如果某些情况下文件夹不存在,我该怎么办?
现在我删除了创建文件,因为我想运行 else 部分...
import java.io.*;
public class myfile
public static void main(String args[])
// Get the file
//File f = new File("friends.txt");
// Check if the specified file
// Exists or not
if (file_f.exists())
System.out.println("Exists");
else
System.out.println("Does not Exists");
System.out.println("I would like to run this possibility");
但是
错误:(14, 13) java: 找不到符号 符号:变量 f 位置:类我的文件
如果在某些情况下该文件夹不存在,我该怎么办? 谢谢
【问题讨论】:
当您说文件夹时,您的意思是文件 file_f 或此代码中未定义的其他文件对象吗?此外,您的代码 sn-ps 引用 file_f 但该对象未在任何地方定义。当您在第一个 sn-p 中声明 File f 时,应该是 File file_f 吗? 无法解释问题 除了主要问题之外,Java 不像 Python 那样缩进定义范围。在 Java 范围内由通过..
括号创建的代码块描述。所以你的else
应该是else /*those printing statements*/
【参考方案1】:
此行不会在磁盘(或您正在使用的任何存储设备)上创建文件。
File f = new File("friends.txt");
它只是在 JVM 中创建一个对象,您可以使用它来操作文件。要真正从头开始创建文件,您需要在该文件周围创建一种 OutputStream
并在其中写入一些内容,然后关闭流。
【讨论】:
我怎么知道这样创建的文件是否存在?不在磁盘上,只是在应用程序中的一个txt。 你可以调用 f.exists() @david751 但是f
和光盘上的实际文件是两个不同的东西。 f
是一个 File 类型的变量,它表示文件的可能位置的信息,它不强制文件或目录的存在。您可以写new File("h:\\foo\\bar.txt")
,这不会强制创建H:
驱动器/分区,或者即使这样的驱动器已经存在,它也不会强制在指定路径中创建文件。换句话说,没有理由从您的代码中删除File f = new File("friends.txt");
,这意味着您可以调用f.exist()
。
@david751 如果您想知道其他人是否在项目中使用文件名friends.txt
,那么您需要使用文本搜索。 File.exists()
检查文件系统上是否存在具有给定名称的文件,而不是其他人在 Java 项目中使用相同的文件名。【参考方案2】:
此代码将修复您提到的编译错误,并在文件存在和不存在时演示功能
import java.io.*;
public class FileTester
private static void testFile(File f)
// Check if the specified file
// Exists or not
if (f.exists())
System.out.println(f.getAbsolutePath() + " exists");
else
System.out.println(f.getAbsolutePath() + " does not exist");
public static void main(String args[])
// assuming friends.txt already exists in current directory, this
// will print "friends.txt exists"
testFile(new File("friends.txt"));
//assuming otherFile.txt does not already exist in current directory
// this will print "otherFile.txt does not exist"
testFile(new File("otherFile.txt"));
【讨论】:
以上是关于Java:如果文件不存在,我无法为文件是不是存在创建条件。为啥?的主要内容,如果未能解决你的问题,请参考以下文章
java 如果我有一个路径比如 E:/123 在这个路径表示的文件不存在时 如何判断是不是是文件或