2016-11-18 5 views
2

複数のフィールドを持つファイルを読み込むためにBufferedreaderを実装するにはどうすればよいですか?私はbrが行単位で読むことを理解していますが、各行の長さが変わるため、ファイルの形式がわかりにくくなっています。次に、テキスト形式の例を示します。どのようにしてバッファリングされたReaderに4つの変数ラインが発生するたびに解釈されるのですか?その後、2つの変則的な行が後で進められますか?ここでBufferedreaderを使用して複数のフィールドのテキストファイルを読み取る

var0// number of test cases 

var1 var2 var3 var4 

num1 num2 

num3 num4 

... ... 

... ... 

var6 var7 var8 var9 

... ... 

... ... 

... 

... 

はファイル

import java.io.BufferedReader; 
import java.io.FileNotFoundException; 
import java.io.FileReader; 
import java.io.IOException; 
import java.util.Scanner; 

public class FileHandling { 

    public static void main(String[ ] args) { 

     Scanner scanner = new Scanner(System.in); 
     BufferedReader br = null; 
     String line; 

     //System.out.println("New.txt"); 

     try{ 
      br = new BufferedReader(new FileReader("Part1.txt")); 
     } catch (FileNotFoundException fileex) { 
      System.out.println(fileex.getMessage() + "This File Was Not Found"); 
      System.exit(0); 
     } 

     //Read the lines 

     try { 
      while((line = br.readLine()) != null){ 
      System.out.println(line); 
    } 
     } catch (IOException ioex) { 
      System.out.println(ioex.getMessage() + "Error Reading File"); 
     }finally { 
      System.exit(0); 
     } 

} 

注意すべきいくつかのことを読み、私の基本的なBufferedReaderのコードです。私はこのウェブサイトとその用途を理解しています。私はこのサイトで他の同様の質問を通して数時間にわたり徹底的に調査しました。私はkhanアカデミー、youtube、私が私の問題を解決するために考えることができるすべてを試みました。私は誰かが私の仕事をするのを探しているわけではありません。私はちょうど失われたCS学生の正しい方向のヒントを探しています。私のJavaスキルは弱いですから、他の人がよりよく説明できる方法で問題に近づいていないかもしれません。私はあなたが私に与えることができるすべてのアドバイスに感謝します。ありがとう。

+3

あなたは 'String.split'を探しています。スペース上でラインを分割します。 –

+2

または 'java.util.Scanner'を使用してください。 – EJP

+0

@AndyTurnerが言っていることのうち、あなたは 'String.split( '')'を使いたいと思っています。これはそれぞれの行とスペースを分割して配列に格納することができます。使用方法の例を次に示します。 https://stackoverflow.com/questions/3481828/how-to-split-a-string-in-java – user123

答えて

0

さらにコメントを展開すると、このコードはスペース文字の各行を分割し、結果を配列内に格納します。あなたの入力がされる場合はそこから、例えば、データを操作することができます

John Goodman 
Kate Beckinsale 
George Foreman 

あなたは変数String firstName = array[0];String lastName = array[1];

を設定することができますここでは、あなたの例から変更する必要がありますコードは、

です
try { 
    while((line = br.readLine()) != null){ 
    String[] splitLine = line.split(' '); 
    for(String str : splitLine) { 
     // Do something with each string 
     System.out.println(str); 
    } 
} 
関連する問題