Чтобы проверить, существует ли файл или каталог, обозначенный указанным путем, вы можете использовать exist()
:
public static void main(String[] args) {
final File file = new File("temp/foo.txt");
if (file.exists()) {
System.out.printf("File " + file.getName() + " exist !");
}
}
Не давайте взглянем на наши Scanner
:
public Scanner(File source) throws FileNotFoundException {}
Если вы передадите файл на сканер, который не существует - вы получите исключение.
Таким образом, чтобы убедиться, что файл существует в этом случае, вы можете:
public static void main(String[] args) {
// let's say there is no such file
final File file = new File("temp/foo.txt");
try {
Scanner scanner = new Scanner(file); // this will fail if file does not exist
// otherwise it exist and you can do what you want
} catch (FileNotFoundException e) {
// and here you can handle the case when file not exist
}
}
Если вы имеете в виду, как проверить, может ли ваш сканер что-то получить, у сканера есть множество hasNext...
методов. Как hasNext()
, hasNextByte()
, hasNextLine()
и т. Д.
И прежде чем scanner.next()
вам стоит проверить! например :
if (scanner.hasNext()) {
String fileAccess = scanner.next();
}
Эти строки в вашем коде неверны, потому что вы пытаетесь проверить, являются ли 2 разных типа String и Scanner equals()
. Они никогда не являются.
// fileAccess is String and fileName is Scanner according to your code
if(fileAccess.equals(fileName)) {
System.out.print("Well this file exists, but I don't know how to make it into a scanner");
}
Как бы я переписал ваш кусок кода (но не уверен, что понимаю, что именно он должен делать), просто в качестве примера:
public static void createdChoice() throws FileNotFoundException {
File madLibFile = new File("/Users/adanvivero/IdeaProjects/Assignment 4/src/mymadlib.txt");
if (madLibFile.exist()) {
Scanner inScanner = new Scanner(System.in);
Scanner fileScanner = new Scanner(madLibFile);
System.out.println("Input file name: " + madLibFile.getName());
if (inScanner.hasNext()) {
String fileAccess = inScanner.next();
// do whatever you need e.g
if(fileAccess.equals(madLibFile.getName())) {
// something here
}
} else {
System.out.println("No more tokens to read !");
}
} else {
System.out.println("File mymadlib.txt does not exist !");
}
}
Надеюсь, это как-то полезно.
Счастливого взлома :)