2017-04-20 257 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”的价值,但没有得到执行:( –