2017-10-10 8 views
0

問題があります。スペースで区切られた値を含むテキストファイルを読み込もうとしています(CSVに似ています)。JavaのCSVテキストファイルを分割し、クラスの異なるフィールドにデータを入力

私は入力ファイルを取り込むことができますが、分割する方法は分かりませんので、各「値」は別のフィールドに入ります。

以下、私が行ったコードのセクションを見つけてください。

String error = ("Content could not be read. Error loading JFileChooser. Try again."); 
    String content = null; 
    JFileChooser chooser = new JFileChooser(); //Displays graphical UI to choose the file 
    if (chooser.showOpenDialog(null) == JFileChooser.APPROVE_OPTION) { 
     File selectedFile = chooser.getSelectedFile(); 
     try { 
      content = new String(Files.readAllBytes(Paths.get(selectedFile.getPath()))); 
     } catch (Exception IOException) { 
      IOException.printStackTrace(); 
      out.println("Error!"); 
     } 
     //return values read in from file. 
     Scanner sc = new Scanner(in); 

     sc.useDelimiter("[^A-Za-z]+"); //regular expression 

     //return content for use l8r on in the program... 
     out.println(content); //test to see if reads in correctly 

     return content; 
    } else 
     return error; 

これは、ファイルが含むサンプル入力である:

1 2 50 0ジョージParadise_3

1 3 50 0ジョンSomewhere_4

1 4 50 0ジェーンDevil's_place_3

2 50 60 0 George Paradise_13

2 50 60 0 John Somew here_14

2 60 60 0ジェーンDevil's_place_13

3 10 10 50 0ジョージParadise_23

3 15 20 40 0ジョンSomewhere_24

3 20 30 55 0ジェーンDevil's_place_23

どんな助力でも大歓迎です。

ありがとうございました!

+0

私はあなたの質問を理解しているかわかりません。多分StringTokenizerはあなたを助けることができますか? – marco

+0

1行に1つのレコードがありますか?(CSVのように) –

+0

@MauricePerryはい! 1行に1レコード。質問を修正してファイルのサンプルを追加します。 –

答えて

0

私の代わりに文字列に全体のコンテンツをロードするのをBufferedReaderでファイルを読み込みます:

File selectedFile = chooser.getSelectedFile(); 
try (InputStream stream = new FileInputStream(selectedFile); 
    Reader reader = new InputStreamReader(stream, "UTF-8"); // or whatever 
    BufferedReader in = new BufferedReader(reader)) { 
    String line = in.readLine(); 
    while (line != null) { 
     String[] fields = line.split("\\s"); 
     doSomethingWith(fields); 
     line = in.readLine(); 
    } 
} 
+0

ありがとうございました!私はそれを試してみると私は見る... –

関連する問題