Tôi đang cố gắng để đọc nội dung tập tin, ví dụ:định vị tập tin trong một classpath
public void myMethod(){
FileInputStream fstream = new FileInputStream(fileLocation);
BufferedReader br = new BufferedReader(new InputStreamReader(fstream));
String strLine;
while ((strLine = br.readLine()) != null) {
....
....
.....
end while
end method
Và tôi có vào lúc bắt đầu của cơ thể lớp private String fileLocation;
và ở phần cuối của một lớp Tôi có một phương thức getter và setter cho nó. Bây giờ tôi đang cố gắng tiêm vị trí tệp này từ mùa xuân bên trong bean từ lớp này và tôi chỉ định phương thức init của lớp này. Nhưng tôi nhận được lỗi không thể tìm thấy các tập tin được chỉ định như thể nó không phải trên một classpath nhưng nó là bên trong tập tin chiến tranh? Tôi đang xây dựng dự án với maven và tôi đặt tập tin trong src/main/resources
Đây là lỗi tôi nhận được khi cố gắng đọc file:
Error: src\main\resources\ids.txt (The system cannot find the path specified)
Đó là khi tôi đã cố gắng này:
FileInputStream fstream = new FileInputStream("src\\main\\resources\\ids.txt");
làm thế nào để tham khảo đúng từ classpath?
EDIT
Khi tôi sửa mã của tôi theo giải pháp @BalusC, đây là cách có vẻ nhưng tôi vẫn nhận được null
lỗi:
ClassLoader classLoader = Thread.currentThread().getContextClassLoader();
InputStream input = classLoader.getResourceAsStream("src/main/resources/ids.txt");
BufferedReader br = new BufferedReader(new InputStreamReader(input));
String strLine;
while ((strLine = br.readLine()) != null) {
....
....
.....
end while
end method
@BalusC cảm ơn bạn đã trả lời câu hỏi của tôi Tôi đã cập nhật câu hỏi của mình –
Tôi đã cập nhật câu trả lời của mình để phản ánh điều đó :) – BalusC
@BalusC giống như vậy khi tôi xóa bit 'src', tôi vừa xem bên trong chiến tranh mục tiêu được triển khai trên jboss bên trong tập tin này là vị trí bên trong 'WEB-INF/classes' nhưng trong dự án của tôi trong nhật thực nằm trong' src/main/resources' bất kỳ thủ thuật nào khác lên tay áo của bạn? –