2016-02-26 20 views
0

我有這給作爲值的文本文件=只讀從aText值文件

FORMNAME1=Cat 
CONTROL ID=6 
DATA WIDTH=20 
LABEL WIDTH = 30 
LABEL ALIGN = R 


FORMNAME2= bat 
CONTROL ID=5 
DATA WIDTH=20 
LABEL WIDTH = 30 
LABEL ALIGN = R 


FORMNAME3= rat 
CONTROL_ID3=10 
DATAWIDTH3=20 
LABELWIDTH3 = 30 
LABEL_ALIGN3 = R 

如何只讀存儲在每個行的值即只使用JAVA =後的數據?

回答

2

讀取文件as shown here,並在每一行使用String.split()來獲取值:

try (BufferedReader br = new BufferedReader(new FileReader(file))) { 
    String line; 
    while ((line = br.readLine()) != null) { 
     String value = line.split("=")[1]; 
     System.out.println(value); 
    } 
} 

說明:讀取該文件中,問題是很好的解釋我聯繫

讓我們看看:你是處理文件INDIVIDUALLY的每一行,那麼文件的內容(只有一行)到達這部分代碼,但是這行代碼是什麼?

String value = line.split("=")[1]; 

line變量,在第一次迭代將包含:

FORMNAME1=Cat 

分裂( 「=」)將創建這樣

[0] FORMNAME1 
[1] Cat 

陣列,使得該線分配的值位置1(Cat)至變量value

String value = "Cat"; 

第二次迭代會做相同,但不同的內容:

line = "CONTROL ID=6" 

所以

line.split("=") 

將導致

[0] CONTROL ID 
[1] 6 

而且

// be careful is a string representing "6" 
// not the numerical value 6 as int or double!!!!! 
String value = "6"; 

等等....


EXTRA提示:

+0

能否請您闡述一下代碼,我一個初學Java的人? 我將如何取出這些值,可以簡單的系統出來嗎? –

+0

如果你想打印'System.out.println(value)'的值,'會完成這個工作,但是value變量包含你正在處理的行的值。 –

+0

@NikhilSashi請,請檢查我的更新答案,並讓我知道如果解釋適合你。請**,如果您不明白某件作品或其他什麼,請不要猶豫,再問** –