2017-04-20 248 views
0

需要關於場景的幫助,即我必須從數據庫中獲取「42258258.2300」的值並將其轉換爲「42,258,258.00」的值。如何讀取CSV文件中的值

再次需要檢查此值是否存在於下載的CSV文件中。

我用下面的代碼從CSV文件讀取,但沒有得到輸出。請幫助我。

String strFile = "outputfile.csv"; 
FileInputStream fstream = new FileInputStream(strFile); 
DataInputStream in = new DataInputStream(fstream); 
BufferedReader br = new BufferedReader(new InputStreamReader(in)); 
String strLine; 
while ((strLine = br.readLine()) != null) { 
String ss = "$42,699,561.00"; 
if(strLine.contains(ss)){ 
System.out.println ("Success"); } 
} 
in.close(); 
+0

是否可以提供CSV文件的幾行示例行?不知道貨幣是如何在文件中格式化的,我無法說明爲什麼.contains()沒有找到任何結果。 – DiabolicWords

+0

你的問題不清楚。什麼是_outputfile.csv_?它包含什麼? 「42258258.2300」,「42,258,258.00」或「$ 42,699,561.00」?您的代碼讀取csv文件的所有行,並希望其中一行包含'ss'字符串,這意味着其中一行應包含「$ 42,699,561.00」。 –

+0

而你沒有看到「成功」的事實清楚地表明csv文件不包含你正在尋找的美元字符串。 –

回答

0

如果你打印strLine,你會得到什麼?你真的得到了字符串?

此代碼對我的作品

public void getFileInformation(){ 
     String strFile = "/Users/myUser/Documents/outputfile.csv"; 
     BufferedReader br = null; 
     String strLine = ""; 
     String ss = "$42,699,561.00";   
     try { 
      br = new BufferedReader(new FileReader(strFile));     
      while ((strLine= br.readLine()) != null) { 
       if(strLine.contains(ss)){ 
        System.out.println ("Success"); 
       }else{ 
        System.out.println (strLine); 
       } 
      } 
     } catch (FileNotFoundException e) { 
      e.printStackTrace(); 
     } catch (IOException e) { 
      e.printStackTrace(); 
     } finally { 
      if (br != null) { 
       try { 
        br.close(); 
       } catch (IOException e) { 
        e.printStackTrace(); 
       } 
      } 
     } 
    } 

但內容 「$ 42,699,561.00」;應該真的存在於文件中

+0

嗨@Jose Pedroza執行腳本,但打印其他語句即使「$ 42,699,561.00」價值目前。但是當我用「$」執行時,這會給出「成功」。我不知道你爲什麼可以幫助我? –

+0

對不起,我整個週末都在外面,如果你仍然有疑問,我會盡力幫助你,當你說「當我用」$「執行時,這會給」成功「」你在哪裏使用「$」在文件或字符串中? –

+0

那沒關係。在文件中檢查「$ 42,699,561.00」的價值,但沒有得到執行:( –