2017-04-23 69 views
0

我在寻找一些关于如何读取具有特定格式的文本文件的帮助,并将它们分配给我的程序中的变量。读取具有特定格式的文本文件

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** 
} 
} 

可能有人请解释:我可以分配值,从文本文件中的变量?

因此,例如,开始将等于 'X',正向应该是 'C' 等

感谢。

+0

在上面的例子中,'path'是一个数组吗? –

+0

路径将是一个链接列表,每个节点都是一个字符。 – GuestUser140561

+0

这些是文件中唯一的变量吗?关于后退,左侧,右侧等等? –

回答

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<>();

+2

你可以用'else if'代替第一个if后面的每个'if' –

1

在类补充一点:

java.util.Properties p = new java.util.Properties(); 

while循环给你的代码添加if语句后:

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以检查它是否包含,(逗号),如果它包含,则将链接列表制作出来。

相关问题