createNewFile() вызывает предупреждающее сообщение, как устранить?

#java #file #warnings

#java #файл #предупреждения

Вопрос:

Используя createNewFile метод и метод удаления File класса, я успешно генерирую файлы из своей программы. Но после процесса компиляции появляется раздражающее предупреждающее сообщение. Мой вопрос в том, как я могу удалить эти предупреждающие сообщения без использования @SUPPRESSWARNIGN . Потому что, когда я проверяю свой код, я вижу возможные предупреждения об ошибках, которые вызваны этими 2 методами. Да, с помощью @SuppressWarning предупреждений и возможных сообщений об ошибках исчезают.

Я не знаю, связано ли это с версией Java, но в любом случае я использую Java 8. Я провел исследование этой проблемы, ничего не смог найти в Интернете. Я видел, как люди в Интернете использовали эти 2 метода так же, как и я. Может быть, они проигнорировали предупреждающие сообщения. Но я этого не хочу.

Вот мой код :

 private void createAFile() throws IOException {

    String outputFileName = getFileName();
    String outputPathName = getFilePath();
    String fullOutputPath = outputPathName   "/"   outputFileName;

    output = new File(fullOutputPath);

    if(output.exists()){

        output.delete(); //this returns a boolean variable.

    }

    output.createNewFile(); //this also return a boolean variable.


}
  

Предупреждения :

Предупреждение: (79, 20) Результат ‘File.delete ()’ игнорируется. Предупреждение: (84, 16) Результат ‘File.createNewFile ()’ игнорируется.

Спасибо

Комментарии:

1. Было бы действительно полезно, если бы вы сказали, что это за предупреждения.

2. Я не вижу никаких предупреждений с этим кодом в Java 8.

3. Предупреждение: (79, 20) Результат ‘File.delete ()’ игнорируется. И предупреждение: (84, 16) Результат ‘File.createNewFile ()’ игнорируется

Ответ №1:

Если вы хотите избежать этих сообщений, вы можете обеспечить ведение журнала для случая, когда эти методы возвращают false.

Что-то вроде этого

 private static Logger LOG = Logger.getLogger("myClassName");
// some code
if (!output.delete()) {
  LOG.info("Cannot delete file: "   output);
}
  

Комментарии:

1. спасибо за идею журнала 🙂 прямо сейчас не могу проголосовать, извините за это.

Ответ №2:

Они выглядят как предупреждения, сгенерированные с помощью инструмента проверки кода. Что бы я сделал, так это :

 boolean deleted,created; // both should be instantiatd to false by default
if(output.exists()){

   deleted = output.delete(); //this returns a boolean variable.
} 
if(deleted){ 
    created = output.createNewFile();
}
if(!deleted||!created){
    // log some type of warning here or even throw an exception
}
  

Комментарии:

1. спасибо 🙂 Поскольку я новичок в Stackoverflow, я не могу проголосовать за ваш ответ. Но я голосую за ваш ответ «абстрактно».