2014-10-06 3 views
0

Я получаю действительно раздражающую ошибку, код в порядке, но он не может найти файлы.Не удалось найти файл указан?

Output: 
.\res\shadersbasicVertex.vs (The system cannot find the file specified) <-- yes it does actually say '\shadersbasicVertex.vs' 

Heres где я загрузить ресурсы (или где указать путь)

shaderReader = new BufferedReader(new FileReader("./res/shaders" + fileName)); 

библиотеки им с помощью: LWJGL

at java.io.FileInputStream.open(Native Method) 
at java.io.FileInputStream.<init>(Unknown Source) 
at java.io.FileInputStream.<init>(Unknown Source) 
at java.io.FileReader.<init>(Unknown Source) 
at com.base.engine.ResourceLoader.loadShader(ResourceLoader.java:15) 
at com.base.engine.Game.<init>(Game.java:20) 
at com.base.engine.MainComponent.<init>(MainComponent.java:20) 
at com.base.engine.MainComponent.main(MainComponent.java:124) 

мои шейдерных папки расположены по адресу: C: \ Users \ Badfitz66 \ workspace \ Rain \ Game engine \ res \ shaders

ответ

3

Ну да, предположительно fileName является "basicVertex.vs". Положите это на конец "./res/shaders", и вы получите .\res\shadersbasicVertex.vs. Вам нужен дополнительный слэш:

shaderReader = new BufferedReader(new FileReader("./res/shaders/" + fileName)); 

Или вы могли бы использовать File API для разрешения путь:

File file = new File(new File("res", "shaders"), fileName); 
shaderReader = new BufferedReader(new FileReader(file)); 

Или еще лучше:

shaderReader = Files.newBufferedReader(Paths.get("res", "shaders", fileName)); 

Обратите внимание, что:

  • Это не имеет ничего общего с OpenGL или nything 3d - вы просто открываете файл
  • FileReaderвсегда использует кодировку по умолчанию для платформы; Я бы рекомендовал использовать подход, который позволяет указать кодировку - последний пример, но по умолчанию используется UTF-8.
Смежные вопросы