10

I have a program that reads numbers from a .txt file. My problem is where to place this file, or how to reference it with a relative path to make this file accessible without using the absolute path.

gangwerz
  • 435
  • 2
  • 8
  • 18

5 Answers5

19

When you try to open a file, it takes your current working path. For example this working tree:

Project
|->src
|   |-->MyClass.java
|   |-->MyFile1.txt
|->res
   |->files
     |-->MyFile2.txt

You can use new File("MyFile1.txt"); for MyFile1.

or

new File("./res/files/MyFile2.txt"); for MyFile2.

Fran
  • 521
  • 4
  • 20
7

You need to start your path from src. "src/your/path/file.txt". See my answer here

Ashwin
  • 7,277
  • 1
  • 48
  • 70
5

If you have a multi-project setup, it may not be obvious what the "root" directory is for a relative path. In that case, open the Terminal tab in your IntelliJ and see what directory it lands in. That is the "root" directory. Your relative path should start there.

Big Pumpkin
  • 3,907
  • 1
  • 27
  • 18
0

@Big Pumpkin Not sure about the terminal showing me the path of the "root". But it does turn out to be the top most directory in a multi-module project.

enter image description here

Sasha Kolsky
  • 432
  • 1
  • 5
  • 14
0

If file1.txt in 'src' it will have path as "src\main\java\file1.txt". Relative path starts from src.