通过读取文件将值存储在不同的变量中

时间:2016-01-14 11:20:59

标签: java

我是java的初学者,还在学习,所以请原谅我的问题,如果它听起来很愚蠢。

我一直被困在一个直接的问题上,我得到了:

我应该读取文本文件并将文本文件的值存储在不同的变量中。我的文本文件如下:

foo.txt的

Directory_path=C:\University
school_name=SyracuseUni

我想将目录路径和school_name存储在一个新变量中,如

var_one = C:\ University 和var_two = SyracuseUni

我能够将它拆分成一个字符串。

public static void main(String[] args) throws IOException {
        try {
            BufferedReader br = new BufferedReader(new FileReader("C:\\foo.txt"));
            String strLine = null;
            String var_one = null;
            String var_two = null;
            while ((strLine = br.readLine()) != null) {
                String[] parts = strLine.split("=");
                String parameter = parts[1];
                System.out.println(parameter);
            }
        }  
        catch (IOException e) {
            e.printStackTrace();
        }
    }

这给了我这样的输出,这不是我想要的:

C:\University
SyracuseUni

如果有人能引导我走向正确的方法,我将不胜感激。谢谢大家。

2 个答案:

答案 0 :(得分:1)

使用java.util.Properties类已经有一种简单的方法来处理这些文件。如果您只是想学习如何阅读文件,这可能是一种过度杀伤。

public static void main(String[] args) {
    String myVar1 = null;
    String myVar2 = null;
    Properties prop = new Properties();
    InputStream input = null;
    try (FileInputStream input = new FileInputStream("pathToYourFile")) {
        prop.load(input);

        myVar1 = prop.getProperty("Directory_path");
        myVar2 = prop.getProperty("school_name");

    } catch (IOException ex) {
        //Handle exception
    } 
}

答案 1 :(得分:0)

简单的事情就是使用Java Properties。您还可以在地图中存储值。如果您真的坚持填写两个单独的变量,您可以始终计算您在while循环中经过的行数,并使用switch / case来确定要填充的变量。

public static void main(String[] args) throws IOException {
        try {
            BufferedReader br = new BufferedReader(new FileReader("C:\\foo.txt"));
            String strLine = null;
            HashMap<String, String> map = new HashMap<String, String>();
            while ((strLine = br.readLine()) != null) {
                String[] parts = strLine.split("=");
                map.put(parts[0], parts[1]);
            }
            for (Entry<String, String> entry : map.entrySet()) {
            String key = entry.getKey();
            String value = entry.getValue();
            System.out.println(key + " = " + value);
        }
        }  
        catch (IOException e) {
            e.printStackTrace();
        }
}