0

jTable に問題があります。私はネットでたくさんのものを読みましたが、それでも私の問題を解決することはできません. jButton1 をクリックすると、このプロシージャが呼び出されます (jtable をテキスト ファイルに保存します)。

    public void SaveMyTable()throws Exception
{
  BufferedWriter bfw = new BufferedWriter(new FileWriter("C:\\emma\\mystuff\\database.txt"));
  for(int i = 0 ; i < jTable1.getColumnCount() ; i++)
  {
    bfw.write(jTable1.getColumnName(i));
    bfw.write("\t");
  }

  for (int i = 0 ; i < jTable1.getRowCount(); i++)
  {
    bfw.newLine();
    for(int j = 0 ; j < jTable1.getColumnCount();j++)
    {
      bfw.write((String)(jTable1.getValueAt(i,j)));
      bfw.write("\t");;
    }
  }
  bfw.close();
}

このコードでは、次の方法でデータを保存します。

n   Col1    Col2    Col3
1   a       b       c

プログラムが実行されると、上記のパスからこのファイルがロードされるので、このBufferedReader方法を使用することを考えました。ちなみに、私はこれを行う方法がわかりません。あなたはなにか考えはありますか?:) ここで私のコードを見ることができます。続行する方法がわからないため、コードの一部のみを作成しました。

public void LoadMyTable()throws Exception
{
  BufferedReader br = new BufferedReader(new FileReader("C:\\addressbook\\databese.txt"));
    try {
        StringBuilder sb = new StringBuilder();
        String line = br.readLine();
   // code that loads the datas in my jTable
} finally {
    br.close();
}
4

2 に答える 2

2

このようなものが必要です。

              BufferedReader br = null;
            try {
                br = new BufferedReader(new FileReader(path));
                String line = null;


            while ((line = br.readLine()) != null) {
                //here you have to load your table 

            }

        } catch (IOException e) {
            //manage your exceptions
        } finally {
            try {
                if (br != null){
                               br.close(); // close open streams resources
                            }
            } catch (IOException ex) {
                //manage your exceptions
            }
        }

readLine() : テキスト行を読み取ります。行は、ライン フィード ('\n')、キャリッジ リターン ('\r')、またはキャリッジ リターンの直後のラインフィードのいずれかによって終了すると見なされます。

これが役に立ちますように

于 2013-06-18T22:00:43.903 に答える