我在实现时有这样的问题:某个单元格若其左边的单元格为空,那它将一直左移到最后一个非空单元格
关键代码:
//这是打开文件时的代码
try{

FileInputStream fin = new FileInputStream(filename);
InputStreamReader isr = new InputStreamReader(fin);
BufferedReader br =  new BufferedReader(isr);

StringTokenizer st1 = new StringTokenizer(br.readLine(), "|");

while( st1.hasMoreTokens() )
{
columnNames.addElement(st1.nextToken());
}

model =new DefaultTableModel(columnNames,0);

while ((aLine = br.readLine()) != null)
{
rowNum ++;
StringTokenizer st2 = new StringTokenizer(aLine, "|");
Vector row = new Vector();
 
while(st2.hasMoreTokens())
{
row.addElement(value);
}
model.addRow(row);
//data.addElement( row );
}
br.close();
}catch(Exception e){ e.printStackTrace(); }

//model = new DefaultTableModel(data,columnNames);
table.setModel(model);//这是保存文件的关键代码
TableColumnModel header = table.getColumnModel();
try{
BufferedWriter bw = new BufferedWriter(new FileWriter(filename));
PrintWriter pw = new PrintWriter(bw);
for (int k = 0; k < columns; k++)
{
TableColumn column = header.getColumn(k);
String value = (String)column.getHeaderValue();
pw.print(value+"|");
}
pw.println();

for(int j = 0;j<rows;j++)
{
for(int k =0;k<columns;k++)
{
String value = (String)table.getValueAt(j,k);
if(value==null)
pw.print((String)"");
else pw.print(value);
//pw.print(value);
pw.print("|");
}
pw.println();
}
pw.close();
}catch(IOException ee) {throw new RuntimeException(ee);}急切盼望高手的解答和帮助
qq3981773,msn [email protected]在线等
谢谢啦

解决方案 »

  1.   

    while ((aLine = br.readLine()) != null)
    {
    rowNum ++;
    StringTokenizer st2 = new StringTokenizer(aLine, "|");
    Vector row = new Vector(); while(st2.hasMoreTokens())
    {
    row.addElement(value);
    }
    model.addRow(row);
    //data.addElement( row );
    }
    // 替换为while ((aLine = br.readLine()) != null)
    {
    rowNum ++;
    StringTokenizer st2 = new StringTokenizer(aLine, "|");

    // 
    while (st2.hasMoreTokens() && st2.nextToken() == null && st2.nextToken().length()==0 )
    {
    ; // do nothing here 
    }

    Vector row = new Vector(); while(st2.hasMoreTokens())
    {
    row.addElement(value);
    }
    model.addRow(row);
    //data.addElement( row );
    }
      

  2.   

    while ((aLine = br.readLine()) != null)
    {
    rowNum ++;
    StringTokenizer st2 = new StringTokenizer(aLine, "|");
    Vector row = new Vector(); while(st2.hasMoreTokens())
    {
    row.addElement(value);
    }
    model.addRow(row);
    //data.addElement( row );
    }
    // 替换为while ((aLine = br.readLine()) != null)
    {
    rowNum ++;
    StringTokenizer st2 = new StringTokenizer(aLine, "|");

    // 
    while (st2.hasMoreTokens() && (st2.nextToken() == null || st2.nextToken().length()==0 ))
    {
    ; // do nothing here 
    }

    Vector row = new Vector(); while(st2.hasMoreTokens())
    {
    row.addElement(value);
    }
    model.addRow(row);
    //data.addElement( row );
    }