2013-03-07 26 views
10

Tôi đã tự hỏi làm thế nào để specifiy một tên đường dẫn tương đối với một tập tin văn bản được lưu trữ trong thư mục src của tôi của một dự án java. Tôi muốn lưu trữ một chuỗi với đường dẫn của tập tin văn bản này. Ví dụ nếu tôi đã có example.txt nằm trong thư mục src của dự án java của tôi làm thế nào tôi sẽ đi về việc tìm đường dẫn tương đối của nó? Tôi cũng làm điều này trong chính của tôi vì vậy tôi đang gặp rắc rối bằng cách sử dụng .getResource(). Làm thế nào tôi sẽ làm điều này? Cảm ơn.Đường dẫn tương đối của tệp văn bản Java trong chính?

đường file của tôi là như sau từ các thuộc tính trong nhật thực /MyProject/src/data.txt

Tôi đã thử:

Chuỗi path = "/MyProject/src/data.txt" ;

Nhưng điều đó không hiệu quả?

+1

Tệp phải nằm trong đường dẫn tương đối của tệp java/jar sẽ được thực thi chứ không phải của các nguồn. –

+0

bạn có đang sử dụng Android không? hoặc Java thuần túy? – niculare

+0

Java cũ đơn giản. – zProgrammer

Trả lời

15

Nếu bạn đang sử dụng nhật thực, hãy đặt tệp văn bản của bạn vào thư mục gốc của thư mục dự án, bên ngoài thư mục /src/bin. Nó bây giờ sẽ được truy cập thông qua một đường dẫn tương đối trực tiếp.

Nếu bạn muốn truy cập vào một tập tin trong thư mục src, bạn phải thêm tiền tố /src/ trước đường dẫn file/tên

+1

Đây là những gì tôi đang tìm kiếm. Đặt nó bên ngoài thư mục src làm việc. – zProgrammer

+0

bạn được chào đón – chiffa

+0

Trong cửa sổ để truy cập tệp a.txt trong thư mục src, hãy sử dụng "src/a.txt" không phải "/src/a.txt" –

3

Đường dẫn là tương đối so với thư mục mà bạn thực hiện "java" command.e.g.

/opt/projects/myproject>$ java -cp <whatever your classpath is that contains your class files> com.mycompany.mypackage.MyJavaClass 

trong trường hợp này MyJavaClass sẽ tìm file tương đối so với thư mục
/opt/dự án/myproject

Có một cách khác để làm điều này nếu bạn thích: bạn có thể sử dụng tài nguyên tải, đó là tìm thấy thông qua cơ chế classpath.

getClass().getResource("foo.txt"); 

Bạn có thể thấy gửi bài này để biết thêm

Preferred way of loading resources in Java

+1

bạn không thể sử dụng "this" theo phương thức tĩnh – zProgrammer

+0

@zProgrammer I đã cập nhật: chỉ cần xóa "this" – javadba

7

Sử dụng src/ tiền tố trước đường dẫn file/tên.

String path = "src/data.txt"; 
Các vấn đề liên quan