我正在尝试在JAVA中读取AS400假脱机文件。我使用此代码阅读。但问题是它仅检索该假脱机文件的一页详细信息。但我想阅读并获取所有页面的详细信息。有人知道怎么做吗?

提前致谢!

代码:

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);
}

最佳答案

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读取整个假脱机文件而不进行分页。

07-27 21:13