2016-06-22 76 views
1

我想要搜索字符串並獲取文件中該字符串的值。 例如文件中包含這樣的獲取給定字符串的值

測試= 1

測試2 = 2

如果搜索字符串str = 「測試2」 中給出,那麼它應該返回值2。 示例代碼我已經試過是

public class ScannerExample { 

    public static void main(String args[]) throws FileNotFoundException { 

     //creating File instance to reference text file in Java 

     String filePath = "c:/temp/test.txt"; 
     //Creating Scanner instnace to read File in Java 

     String str = "text"; 
     //Reading each line of file using Scanner class 
     BufferedReader br = new BufferedReader(new FileReader(filePath)); 
     String sCurrentLine; 
     while ((sCurrentLine = br.readLine()) != null) { 
      if(sCurrentLine.contains(str)) { 
       result=true; 
       System.out.println("Found entry "); 
       break; 
      } 
     } 
    } 
} 

我在這裏檢查,如果值存在與否,請您及時提出了一些方法來獲取它的價值

sample.txt: 
test=1 
test2=2 
testnew=new 
testold=old2 
+0

HashMaps這樣的文件?是的.. – Hackerdarshi

+0

你的代碼不能編譯。 –

+0

你可以添加關於test.txt的信息或發佈它嗎?每對(如test2 = 2)是否在單獨的行中列出? – c0der

回答

0

只需使用一個Properties對象並加載它

Properties p = new Properties(); 
try (Reader reader = new FileReader(filePath)) { 
    // Load the file 
    p.load(reader); 
} 
// Print the value of the parameter test2 
System.out.println(p.getProperty("test2")); 
0

您可以分割,並獲得價值。

String[] splits = sCurrentLine.split("="); 
System.out.println("Value is " + splits[1]) 

並將包含該值。

0

你可以做到在幾個方面:

方法1:

逐行讀取文件中的行,並通過=分割每一行,並使用左側的鍵和右側的部分價值。把它們放在HashMap。在查找的同時,根據密鑰從HashMap中讀取它。

方式2:

在你現在的做法,由=分割每行和匹配進入與左邊的關鍵,如果它匹配返回的權利的一部分。

希望這會有所幫助。

+0

我沒有改變它的方式。它已經寫在兩個單獨的行上。我只是格式化它。你應該在評論之前查看問題歷史。 – Sanjeev