Java-Selenium: Eclipse не может найти мой файл, но мой файл находится в его рабочем каталоге

Я использую Eclipse и библиотеку Java: java.io.FileInputStream;

Мой сценарий не может найти файл, который я хочу присвоить переменной с помощью конструктора FileInputStream, даже если файл находится в рабочем каталоге.

Вот мой код:

package login.test;
import java.io.File;
import java.io.FileInputStream;
public class QTI_Excelaccess {
        public static void main(String [] args){

        //verify what the working directory is
        String curDir = System.getProperty("user.dir");
        System.out.println("Working Directory is: "+curDir);

        //verify the file is recognized within within the code
         File f = new File("C:\\\\Users\\wes\\workspace\\QTI_crud\\values.xlsx");
            if (f.exists() && !f.isDirectory()){
                System.out.println("Yes, File does exist");
            } else {
                System.out.println("File does not exist");
            }

        //Assign the file to src
        File src = new File("C:\\\\Users\\wes\\workspace\\QTI_crud\\values.xlsx");
        System.out.println("SRC is now: "+src);

        //Get Absolute Path of the File
        System.out.println(src.getAbsolutePath()); 


        FileInputStream fis = new FileInputStream(src);

        }*

Мой вывод (когда я комментирую последнюю строку)

«Рабочий каталог: C:\Users\wes\workspace\QTI_crud Да, файл существует. Теперь SRC: C:\Users\wes\workspace\QTI_crud\values.xlsx C:\Users\wes\workspace\QTI_crud\values. .xlsx"

Когда я не комментирую последнюю строку, я получаю сообщение об ошибке:

«Исключение в потоке «основной» java.lang.Error: нерешенная проблема компиляции: тип необработанного исключения FileNotFoundException

at login.test.QTI_Excelaccess.main(QTI_Excelaccess.java:30)"

Где я ошибся в своем коде? Я новичок в Java

Большое спасибо!


person thehungrypanda121    schedule 04.12.2015    source источник


Ответы (1)


Основная проблема с кодом заключается в том, что после того, как вы узнали, что файл не существует в указанном каталоге, вы попытались прочитать файл. Следовательно, это дает вам ошибку.

Рефакторинг к этому

if (f.exists() && !f.isDirectory()){
        System.out.println("Yes, File does exist");
        try {
            FileInputStream fis = new FileInputStream(f);
            //perform operation on the file
            System.out.println(f.getAbsolutePath()); 
        } catch (FileNotFoundException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    } else {
        System.out.println("File does not exist");
    }

Здесь, как вы можете видеть, если файл существует, вы пытаетесь прочитать файл. Если он недоступен, вы ничего не делаете.

person Jigar    schedule 04.12.2015
comment
Спасибо, Джигар, добавление исключения для файла сработало, и теперь скрипт компилируется. Правила синтаксиса Java требуют некоторого привыкания, - person thehungrypanda121; 08.12.2015
comment
Да. Изучение Java занимает некоторое время. Через несколько месяцев вы будете хорошо знать java. - person Jigar; 08.12.2015