2014-10-06 92 views
0

我得到一個非常惱人的錯誤,代碼很好,但它無法找到文件。找不到指定的文件?

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

繼承人在那裏我加載資源(或者我指定的路徑)

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無關或一個您正在打開一個文件
  • FileReader總是使用平臺默認編碼;我會推薦使用一種方法,允許您指定編碼 - 最後一個例子,但默認爲UTF-8。
相關問題