Я не могу найти свой сохраненный файл в каталоге проекта Eclipse

1

У меня есть проблема, чтобы найти файл, который написан правильно. Я могу читать, но когда я хочу найти его в своем каталоге проекта, он не существует. Я пытался найти его во всех папках моего компьютера, но он не существует. Только когда я включаю apsolute path, я нахожу его в своем каталоге проекта.

final String FILE_NAME = "test.dat";

//READ FILE
File readFile = new File(FILE_NAME);

if (readFile.exists()) {

System.out.println("file exsists...");
FileInputStream f_in = new FileInputStream(readFile);

   // Read object using ObjectInputStream
 ObjectInputStream obj_in = new ObjectInputStream(f_in);

// Read an object
   Object obj = null;

    try {
    obj = obj_in.readObject();
    } catch (ClassNotFoundException e) {
    // TODO Auto-generated catch block
            e.printStackTrace();
     }

if (obj instanceof JsonObjectLoad) {

 jo = (JsonObjectLoad) obj;

  }
 obj_in.close();

}
else {
 jo = new JsonObjectLoad();

}

  jo.localities.add(loc);



//WRITE FILE
    File writeFile = new File(FILE_NAME);

    writeFile.createNewFile();

FileOutputStream f_out = new FileOutputStream(writeFile);

// Write object with ObjectOutputStream
ObjectOutputStream obj_out = new ObjectOutputStream(f_out);

// Write object out to disk
obj_out.writeObject(jo);
obj_out.close();

Я нашел путь в C:\eclipse_ee\eclipse\test.dat... Как его изменить?

  • 0
    звучит подозрительно Когда вы запускаете программу в Eclipse, она запускает ее из корневого каталога проекта. Поскольку вы не предоставляете никакого пути, он будет считываться из текущего каталога (корня проекта) или из его пути к классам. Я бы посоветовал проверить корневой каталог проекта, а также все записи пути к классам, которые вы добавили в Build Path. Попробуйте также запустить командную строку кода.
Теги:
filepath

1 ответ

1

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

File writeFile = new File(FILE_NAME);
if(!writeFile.exists()){
    writeFile.createNewFile();
}
System.out.println(writeFile.getAbsolutePath());

Примечание. Нет необходимости writeFile.createNewFile() потому что FileOutputStream автоматически создает новый файл, если он не существует там, где вы начинаете писать.


Если вы хотите открыть файл в режиме добавления, когда файл уже существует и не хотите заменять существующий контент, используйте конструктор FileOutputStream (File file, boolean append) и передайте true качестве аргумента append.


Использовать путь по отношению к папке src проекта: (попробуйте любой)

// file that exists under resources folder parallel to src in your project
File file1 = new File("resources/xyz.txt");
System.out.println(file1.getAbsolutePath());

// file that exists under src/resources folder
File file2 = new File(getClass().getResource("/resources/abc.txt").toURI());
System.out.println(file2.getAbsolutePath());

Вот структура проекта:

project root
           |
           |__src
           |    |
           |    |__resources
           |                |
           |                |__abc.txt
           |
           |__resources
                      |
                      |__xyz.txt    
  • 0
    Я нашел путь ... Он сохраняет его в C: \ eclipse_ee \ eclipse \ serialize.dat Как я могу его изменить?
  • 0
    как я предложил в моем последнем редактировании.
Показать ещё 4 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню