2013-04-09 46 views
0

我正在写一个轻量级Java游戏库(lwjgl)的obj查看器,并且在阅读外部obj文件时遇到了一些麻烦。当我运行代码时,它甚至不会将任何内容打印到堆栈跟踪中,更不用说打印nextLine。这里是我的整个代码(如果它在语法错误的代码块之外,或者我把它放错了地方。java中的扫描器问题

import java.io.FileNotFoundException; 
import java.io.FileReader; 
import java.io.IOException; 
import java.util.Scanner; 

import org.lwjgl.LWJGLException; 
import org.lwjgl.opengl.Display; 
import org.lwjgl.opengl.DisplayMode; 
import org.lwjgl.opengl.GL11; 


public class MainDisplay { 

public void start() { 
try { 
    Display.setDisplayMode(new DisplayMode(800,600)); 
    Display.create(); 
} 
catch (LWJGLException e) { 
    e.printStackTrace(); 
    System.exit(0); 
} 

GL11.glMatrixMode(GL11.GL_PROJECTION); 
GL11.glLoadIdentity(); 
GL11.glOrtho(0, 800, 0, 600, 1, -1); 
GL11.glMatrixMode(GL11.GL_MODELVIEW); 

while (!Display.isCloseRequested()) { 
    GL11.glClear(GL11.GL_COLOR_BUFFER_BIT | GL11.GL_DEPTH_BUFFER_BIT); 
    GL11.glColor3f(0.5f, 0.5f, 1.0f); 


} 
} 
/** 
* @param args 
* @throws FileNotFoundException 
*/ 
public static void main(String[] args) throws FileNotFoundException { 
    try { 
     FileReader obj = new FileReader("test.obj"); 
     Scanner scanner = new Scanner(obj); 
     String line = scanner.nextLine(); 
    } catch (IOException e) { 
     e.printStackTrace(); 
    } 


    MainDisplay mainDisplay = new MainDisplay(); 
    mainDisplay.start(); 



} 

} 
+0

你不用实际上在这个代码中打印任何东西...... – Sinkingpoint 2013-04-09 00:16:14

+0

哦,哦,哦,它即使我打印出来仍然不起作用(尽管让我检查一下)。 – 2013-04-09 00:31:33

+0

@hotdogsmustardyeah - 如果有帮助,请接受答案。 – 2013-04-09 16:37:26

回答

1

这里,试试这个。

while (scanner.hasNextLine()) { 
      String line = scanner.nextLine(); 
      System.out.println(line); 
     } 
     scanner.close(); 

你所做的只是将文件中第一行的值存储在变量中,我设置的while循环读取了文件中的所有行,它只在到达null或EOF后才停止,

+0

我会把scanner.close()放在finally块中,否则+1 – Sinkingpoint 2013-04-09 03:19:36