我正在寻找有关如何阅读具有特定格式的文本文件的一些帮助,并将它们分配给我的程序中的变量。
TextFile.txt的
//Variables
start={x}
forward={c}
end={y}
pause={p}
path={x, c, c, c, c, p, c, c, y}
Class.java
public void readFile()
{
char start, forward, end, pause;
BufferedReader reader =
new BufferedReader (
new InputStreamReader (new FileInputStream (TextFile.txt)));
String line;
while ((line = reader.readLine ()) != null)
{
if (line.startWith ("//") || line.trim ().isEmpty ())
continue; // Ignore the line
//**This is the part I need help with**
}
}
有人可以解释我如何将值分配给文本文件中的变量吗?
例如,start等于'x',forward等于'c'等等。
感谢。
答案 0 :(得分:1)
在课堂上添加:
java.util.Properties p = new java.util.Properties();
在if语句之后的while循环中将其添加到代码中:
int index = line.indexOf("=");
String var = line.substring(0, index);
int s1 = line.indexOf("{");
int s2 = line.indexOf("}");
String value = line.substring(s1, s2);
p.setProperty(var, value);
在上面的代码中,var
是您的变量,value
是var
的值。
您可以进一步处理value
以检查它是否包含,
(逗号),如果它包含,则从中创建一个链接列表。
答案 1 :(得分:1)
您可以使用以下内容:
String line;
while ((line = reader.readLine()) != null) {
if (line.startsWith("//") || line.trim().isEmpty())
continue;
else if(line.startsWith("start"))
start= line.charAt(line.indexOf("{")+1);
else if(line.startsWith("forward"))
forward= line.charAt(line.indexOf("{")+1);
else if(line.startsWith("end"))
end= line.charAt(line.indexOf("{")+1);
else if(line.startsWith("pause"))
pause= line.charAt(line.indexOf("{")+1);
else if(line.startsWith("path"))
for(String s: line.substring(line.indexOf("{")+1, line.indexOf("}")).split(", "))
path.add(s.charAt(0));
这假定您的路径定义为LinkedList<Character> path = new LinkedList<>();
。