使用所有页面读取AS400假脱机文件 - JAVA(JT400)

时间:2013-08-28 05:26:09

标签: java swing jtextarea ibm-midrange jt400

我正在尝试在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);
}

1 个答案:

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