我是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
如果有人能引导我走向正确的方法,我将不胜感激。谢谢大家。
答案 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();
}
}