2017-04-23 59 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以檢查它是否包含,(逗號),如果它包含,則將鏈接列表製作出來。

相關問題