2013-08-28 42 views
2

我正在嘗試閱讀AS400 Spooled文件在JAVA中。我使用這段代碼閱讀它。但問題是它只檢索該Spooled文件的一個頁面細節。但我想閱讀並獲取所有頁面的詳細信息。任何人都知道如何去做?閱讀AS400 Spooled文件的所有頁面 - JAVA(JT400)

在此先感謝!

CODE:

try { 
    jTextArea1.setText(null); 
    DefaultTableModel DTM =(DefaultTableModel) jTable1.getModel(); 
    int SR = jTable1.getSelectedRow(); 

    String SPLFNAME = (String) DTM.getValueAt(SR, 0); 
    String SPLFNUMBERT = (String) DTM.getValueAt(SR, 1); 
    String JOBNAME = (String) DTM.getValueAt(SR, 3); 
    String JOBUSER = (String) DTM.getValueAt(SR, 4); 
    String JOBFNUMBER = (String) DTM.getValueAt(SR, 5); 

    int SPLNO = Integer.parseInt(SPLFNUMBERT); 

    AS400 sys = new AS400(); 
    SpooledFile sf = new SpooledFile(sys,   // AS400 
             SPLFNAME,  // splf name 
             SPLNO,  // splf number 
             JOBNAME,  // job name 
             JOBUSER,  // job user 
             JOBFNUMBER); // job number 

    PrintParameterList printParms = new PrintParameterList(); 
    printParms.setParameter(PrintObject.ATTR_WORKSTATION_CUST_OBJECT, "/QSYS.LIB/QWPDEFAULT.WSCST"); 
    printParms.setParameter(PrintObject.ATTR_MFGTYPE, "*WSCST"); 

    // Create a page input stream from the spooled file 
    PrintObjectPageInputStream is = sf.getPageInputStream(printParms); 

    BufferedReader d = new BufferedReader(new InputStreamReader(is)); 
    String data =""; 
    while((data = d.readLine())!=null) 
    { 
     System.out.println (data); 

     jTextArea1.setText(jTextArea1.getText()+"\n"+data); 
    } 
} catch (Exception e) { 
    System.out.println(e); 
} 

回答

6

PrintObjectPageInputStream類有一個nextPage() 方法來移動到下一個頁面。

BufferedReader d = new BufferedReader(new InputStreamReader(is)); 
String data = ""; 
do { 
    while((data = d.readLine()) != null) 
    { 
     System.out.println (data); 
     jTextArea1.setText(jTextArea1.getText()+"\n"+data); 
    } 
} while (d.nextPage()); 


使用 PrintObjectTransformedInputStream讀不分頁整個假脫機文件。

+2

並輸出到jTextArea1.setText(jTextArea1.getText()+「\ n」+ data);應該是jTextArea1.append(「\ n」+ data);包裹成invokeLater – mKorbel

+0

is.nextPage()不是d.nextPage() –