2017-02-22 25 views
-2

Я хочу проверить, существует ли определенный файл в той же папке. Если этого не существует, создайте новый файл и введите что-то определенное. например. если filePath = test.txt и test.txt не существует. Создайте новое имя файла test.txt и поместите 12345 в первую строку файла.Проверьте, существует ли файл уже в одном пути

В настоящее время мой метод даже не запускает это утверждение if, несмотря на выполнение условия. (Test.txt не существует)

PrintWriter output; 
    File file = new File(filePath); 
    if(!file.isFile()){ 
     try { 
      output = new PrintWriter(new FileWriter(filePath)); 
     } catch (IOException ex) { 
      throw new PersistenceException("Error!", ex); 
     } 
     output.print("12345"); 
     output.flush(); 
     output.close(); 
    } 
+0

Вы можете использовать [существует()] (https://docs.oracle.com/javase/7/docs/api/java/io/File.html#exists()) доступны для 'File' объекты. –

+0

А что, если он существует? А что, если он существует, но не имеет 12345? – EJP

ответ

2

Вы можете проверить, существует ли файл или нет, создав объект File и используя существующий метод. Файловые объекты в Java отличаются друг от друга по сравнению с C, когда вы создаете объект File, вы не обязательно создаете физический файл.

File file = new File(pathString); 
if (file.exists()) 
{ 
    // File already exists 
} 
else 
{ 
    // You can create your new file 
} 
0

Я думаю, вы могли бы использовать это условие в вашем случае:

Files.exists(Paths.get(file)) 

Вы можете решить использовать спецификацию NOFOLLOW_LINKS для того, чтобы избежать следовать символической ссылке.

Это поможет вам проверить, существует ли файл.

Надеюсь, это может вам помочь.

Смежные вопросы