2017-01-19 11 views
-1

は、ここに私のコードCSVファイルをArrayListに印刷するにはどうすればよいですか?

package sequentialFilePractice; 
import java.io.BufferedReader; 
import java.io.File; 
import java.io.FileNotFoundException; 
import java.io.FileReader; 
import java.io.IOException; 
import java.util.ArrayList; 
import java.util.logging.Level; 
import java.util.logging.Logger; 

public class ReadFile{ 

static String line = ""; 

ReadFile() throws FileNotFoundException{ 
    readTheFile(); 
    CSVtoArrayList(); 
} 

public String readTheFile() throws FileNotFoundException{ 
    String csvFile = "H:\\S6\\AH Computing\\Java Practice\\test.csv"; 
    BufferedReader br = null; 
    String cvsSplitBy = ","; 

    try { 

     br = new BufferedReader(new FileReader(csvFile)); 
     while ((line = br.readLine()) != null) { 


     } 

    } catch (FileNotFoundException e) { 
     e.printStackTrace(); 
    } catch (IOException e) { 
     e.printStackTrace(); 
    } finally { 
     if (br != null) { 
      try { 
       br.close(); 
      } catch (IOException e) { 
       e.printStackTrace(); 
      } 
     } 
    } 
    return line; 


} 

public static ArrayList<String> CSVtoArrayList() { 
    ArrayList<String> splitCSV = new ArrayList<>(); 

    if (line != null) { 
     String[] splitData = line.split("\\s*,\\s*"); 
     for (int i = 0; i < splitData.length; i++) { 
      if (!(splitData[i] == null) || !(splitData[i].length() == 0)) { 
       splitCSV.add(splitData[i].trim()); 
      } 
     } 
    } 

    for(int j = 0;j < splitCSV.size();j++){ 
     System.out.println(splitCSV.get(j)); 
    } 
     return splitCSV; 
    } 

public static void main(String[]args) throws IOException{ 
    ReadFile f = new ReadFile(); 
} 
} 

コードをコンパイルしたファイルが存在しています。私は行を印刷することができ、ファイルの内容を印刷しますが、arrayListを印刷すると何も出力されず、コピーされません。これは私のJavaでの順次ファイルの最初の使用です。

+0

:にあなたのコードを削減する本質的には

。 'ArrayList'をCSVファイルに出力することを意味しますか?または、CSVファイルを 'ArrayList'に読み込みますか? – Michael

+1

一度読んだら、 'line'で何もしているようには見えません。値を取得するには、 'line.split(cvsSplitBy)'のようなものを使うべきです。 (これはCSVファイルを途中で読むのは非常に単純なアプローチだと気をつけてください) – Stik

+1

@Michael申し訳ありませんが、悪い言葉遣いです。私はcsvの内容をarraylistに読み込み、arraylistの内容をコンソールに出力したい。 –

答えて

0

ファイルを手動で読み取る必要がありますか?そうでない場合は、http://opencsv.sourceforge.net/をチェックアウトする必要があります。これにより、ループ管理者に対処する代わりにCSVを直接List<String[]>に読み込み、行を分割してリストを作成することができます。私は、コードを読んでいないが、あなたは** `ArrayList`に印刷することはできません

CSVReader reader = new CSVReader(new FileReader("yourfile.csv")); 
List myEntries = reader.readAll(); 
関連する問題