我正在尝试让我的代码从文本文件中读取,并将其中的内容存储为变量..字符串和双精度字符...以备后用。我没问题让它返回信息。
.txt文件中的内容是
circle 5
triangle 3
square 10
sphere 5
cube 4
tetrahedron 8
对于我的代码,我有:
BufferedReader reader;
try {
reader = new BufferedReader(new FileReader(
"src/Data.txt"));
String line = reader.readLine();
while (line != null) {
System.out.println(line);
// read next line
line = reader.readLine();
}
reader.close();
} catch (IOException e) {
e.printStackTrace();
}
答案 0 :(得分:0)
据我所知,不可能构造一个变量名。您无法阅读“圆圈”并将其分配为变量名称。您可以使用HashMap<String,Double>
将它们存储为[key,value]对。
答案 1 :(得分:0)
第一部分是使用String.split
分割行,以分隔变量名称和值。如果事先知道在文本文件中需要哪些变量,则可以声明这些变量并使用switch
语句来确定读取名称对应的变量,并相应地分配值。否则,可以使用HashMap
或类似的东西来存储在文件中找到的名称和值。
答案 2 :(得分:0)
将文本内容存储在哈希图中,在以下代码中,我将其命名为“ vars”。 hashMap变量包含您的变量作为键,值对。 如果您需要获取任何变量的值,则只需编写:
vars.get(key);
例如,要获取circle的值,请输入:
vars.get("circle");
这是用哈希图修改存储代码后的代码。
BufferedReader reader;
HashMap<String,Double> vars = new HashMap<>();
try {
reader = new BufferedReader(new FileReader(
"src/Data.txt"));
String line = reader.readLine();
while (line != null) {
System.out.println(line);
String[] lineVars = line.split(" ");
vars.put(lineVars[0],Double.parseDouble(lineVars[1]));
// read next line
line = reader.readLine();
}
reader.close();
}catch (IOException e) {
e.printStackTrace();
}