2016-10-02 5 views
2
public void readFile() throws IOException 
{ 
    try (BufferedReader reader = new BufferedReader(new FileReader("Data.txt"))) { 
    String line; 
    while ((line = reader.readLine()) != null) { 
     System.out.println(line); 
     DefaultTableModel model = (DefaultTableModel) pracListTeacherTable.getModel(); 
     model.addRow(new Object[]{line, line}); 

} 

皆さん。私は本質的にData.txtと呼ばれるファイルから読み取るこのコードを持っています。私が望むのは、テキストファイルの2行ごとにテーブル上に1行を作成することですが、わかるように、同じ行の両方のセルに同じ行を使用するmodel.addRow(new Object[]{line, line});を使用しています。Java - ファイルを読むために必要なヘルプ

私はmodel.addRow(new Object[]{line, nextline});のようなものを持つことができるので、私は前の行を保存する方法が必要ですが、私はそれを行う方法を理解できません!

誰かが私を助けることができれば、それは素晴らしいだろう。

更新:shaoyiheのおかげで働いています!

public void readFile() throws IOException { 
    try (BufferedReader reader = new BufferedReader(new FileReader("Data.txt"))) { 
    String line1, line2; 
    while ((line1 = reader.readLine()) != null && (line2 = reader.readLine()) != null) { 
     DefaultTableModel model = (DefaultTableModel) pracListTeacherTable.getModel(); 
     model.addRow(new Object[]{line1,line2}); 
    }   
} 
+0

さて、現在の行があり、前の行を 'string prevLine;'に保存しておけばよいでしょう。 – 3kings

答えて

0

ループごとに2行を読み上げるのはどうでしょうか?

String line1, line2; 
while ((line1 = reader.readLine()) != null && (line2 = reader.readLine()) != null) { 
//model.addRow(new Object[]{line1, line2}); 
} 

// for odd line 
if (line1 != null) { 

} 
+0

ありがとうございました!私はそれを試し、私の更新されたコードであなたに戻ってきます。 – Miyazero

0

これはそれを行う必要があります。

public void readFile() throws IOException 
{ 
    try (BufferedReader reader = new BufferedReader(new FileReader("Data.txt"))) { 
    String line; 
    String [] lines = new String[2]; 
    int nextLine = 0; 
    while ((line = reader.readLine()) != null) { 
     System.out.println(line); 
     lines[nextLine++] = line; 
     // check if we're at the second line 
     if (nextLine == 2) { 
      DefaultTableModel model = (DefaultTableModel) pracListTeacherTable.getModel(); 
      model.addRow(lines); 
      nextLine = 0; 
     } 
    } 
    if (nextLine == 1) { 
     // odd number of lines in file (error?) 
     // lines[0] contains the odd (last) line 
     // lines[1] contains the previous line (last of the previous pair) 
    } 
} 

それはループの前に一度モデルを取得するために意味をなすだろうか?またはgetModel()は、それぞれの呼び出しで異なるモデルを返しますか?

関連する問題