2013-07-08 26 views
0

我當前通過硬編碼ArrayList訪問我的.csv文件。我希望能夠選擇文件,而不是像當前那樣進行硬編碼。從JFileChooser創建ArrayList而不是硬編碼選項

我剛添加了JFileChooser。我無法讓我的rowData逐行讀取通過JOptionPane選擇的文件。我該怎麼做呢?

JFileChooser chooser = new JFileChooser(); 
    FileNameExtensionFilter filter = new FileNameExtensionFilter("CSV Files", "csv"); 
    chooser.setFileFilter(filter); 
    int returnVal = chooser.showOpenDialog(null); 
    if(returnVal == JFileChooser.APPROVE_OPTION) 
    { 
     System.out.println("You chose to open file: " + chooser.getSelectedFile().getName()); 
    } 

我的原始代碼從這裏開始(沒有註釋的行),它的工作原理。我只是不希望它在硬編碼

ArrayList<String> rowData = new ArrayList<String>(); 
    FileConnections excelConn = new FileConnections(); 
    //rowData = excelConn.read(chooser); 
    rowData = excelConn.read(new File("11738 IPACC INFINITY Unconfirmed OIVS Responses.csv")); 
+0

您有什麼問題?似乎你的一半問題可能是無關緊要的。我不確定這是否是關於閱讀CSV文件或使用JFileChooser的問題。 –

+1

你只需要合併這兩個,仍然讀入一個ArrayList,但用'chooser.getSelectedFile()替換硬編碼的文件'' – DairyLea

+0

@tieTYT - 我的問題是我得到錯誤,當我取消註釋// rowData = excelConn.read(選擇器)。我希望能夠選擇文件,然後從中讀取。現在,它只是讀取我硬編碼的內容。文件名會改變多次,這就是爲什麼我需要文件選擇器。 – bucs10us

回答

1

試試這個。(未經測試順便說一句!):

JFileChooser chooser = new JFileChooser(); 
FileNameExtensionFilter filter = new FileNameExtensionFilter("CSV Files", "csv"); 
chooser.setFileFilter(filter); 
int returnVal = chooser.showOpenDialog(null); 
if(returnVal == JFileChooser.APPROVE_OPTION) 
{ 
    System.out.println("You chose to open file: " + chooser.getSelectedFile().getName()); 
    ArrayList<String> rowData = new ArrayList<String>(); 
    FileConnections excelConn = new FileConnections(); 
    rowData = excelConn.read(chooser.getSelectedFile()); 
} 

等同於:

JFileChooser chooser = new JFileChooser(); 
chooser.setFileFilter(new FileNameExtensionFilter("CSV Files", "csv")); 
if(chooser.showOpenDialog(null) == JFileChooser.APPROVE_OPTION) { 
    System.out.println("You chose to open file: " + chooser.getSelectedFile().getName()); 
    ArrayList<String> rowData = new FileConnections().read(chooser.getSelectedFile()); 
} 
+0

我試過了,它似乎工作。有一個TNS的問題,但它的工作,直到它到達數據庫我比較它。數據庫工作時我會接受。謝謝! – bucs10us

相關問題