从Java中读取文件时的空值

时间:2014-08-13 01:04:40

标签: java

所以,我试图用java读取一个文件。该文件只包含一行,是一组由星号分隔的设置。

计划是使用.split方法将它们解析为数组,并将每个数组索引分配给正确的变量。

不幸的是,尽管我的文件显然存在,但它返回输出的空值,这是不正确的。

这是我的代码:

try {
        try {
            /* Create and display the form */
            Class.forName("com.mysql.jdbc.Driver").newInstance();
        } catch (    InstantiationException | IllegalAccessException ex) {
            Logger.getLogger(JFrame.class.getName()).log(Level.SEVERE, null, ex);
        }
       Logger.getLogger(JFrame.class.getName()).log(Level.SEVERE, "Loaded okay.");
   } catch (ClassNotFoundException ex) {
       Logger.getLogger(JFrame.class.getName()).log(Level.SEVERE, null, ex);
   }
    java.awt.EventQueue.invokeLater(new Runnable() {
        @Override
        public void run() {
            new JFrame().setVisible(true);
        }
    });

    String s = System.getenv("APPDATA");
    File f = new File(s + "\\TinyboardMod\\settings.txt");
    if(f.exists() && !f.isDirectory()) {
        BufferedReader br = new BufferedReader(new FileReader(f));
        String line;
        while ((line = br.readLine()) != null) {
         // process the line.
            String settingsString = br.readLine();
            Logger.getLogger(JFrame.class.getName()).log(Level.SEVERE, settingsString);
            //settings = settingsString.split("\\[");
        }
        br.close();


    }

所以,控制台在记录器中显示为null,但是,如果文件不存在,它就不会那么远,所以问题出在那几行,我只是看不到它< / p>

1 个答案:

答案 0 :(得分:8)

String settingsString = br.readLine();

应该是

String settingsString = line; // or just use line directly

否则,您正在while循环条件中读取一行,而在该语句中读取另一行。