⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 xlsoutputsynapse.java

📁 一个纯java写的神经网络源代码
💻 JAVA
字号:
package org.joone.io;import java.io.*;import java.util.TreeSet;import org.joone.log.*;import org.joone.engine.*;import org.joone.net.NetCheck;import org.apache.poi.poifs.filesystem.*;import org.apache.poi.hssf.usermodel.*;/** This class allows data to be read from an Excel XLS formatted file.  The class * requires the specification of a file name and a worksheet name is optional. */public class XLSOutputSynapse extends StreamOutputSynapse {    /**     * Logger     * */    private static final ILogger log = LoggerFactory.getLogger(XLSOutputSynapse.class);        /** The serial version ID for this object. */    static final long serialVersionUID = -9167076940131905606L;        /** The name of the XLS File to write network output data to. */    private String FileName = "";    /** The stream to be used for writing. */    private transient FileOutputStream o_stream;    /** The input stream of an XLS file that already exists. */    private transient FileInputStream i_stream;    /** The Internal HSSF sheet to output data to. */    private transient HSSFSheet o_sheet;        /** The worksheet index number. */    private int o_sheet_index = -1 ;        /** Internal row count. */    private int  row_no = 0;    /** Starting position when the first pattern being written. */    private int  startCol;    private int  startRow;    /** The working copy of the HSSF Workbook used to output data. */    private transient HSSFWorkbook workbook;    /** The name of the XLS sheet within the XLS File that will be used to write data     * to.     */    private String o_sheet_name = new String("j_output");        /** The default constructor for this XLSOutputSynapse. */    public XLSOutputSynapse() {        super();        /* Default value. */        startCol = 0;        startRow = 0;    }            /** Write any remaining data to the XLS file. */    public void flush() {        try {            workbook.write(o_stream);        } catch (IOException ioe) {            String error = "IOException in "+getName()+". Message is : ";            log.warn(error + ioe);            if ( getMonitor() != null )                new NetErrorManager(getMonitor(),error + ioe.getMessage());        }    }        /** Writes a Pattern to the XLS file.     * @param pattern The Pattern to write to the XLS file.     */    public synchronized void write(Pattern pattern) {        if ((workbook == null) || (pattern.getCount() == 1)) {            try {                this.initOutputStream(); // get handle on workbook            } catch (IOException ioe) {                String error = "IOException in "+getName()+". Message is : ";                log.warn(error + ioe);                if ( getMonitor() != null )                    new NetErrorManager(getMonitor(),error + ioe.getMessage());            }        }        if (pattern.getCount() == -1) {            //open outstream            try {                o_stream = new FileOutputStream(FileName);                workbook.write(o_stream);                o_stream.close(); // close stream to be clean                row_no = startRow;  // reset count                workbook = null; //reset workbook to force reread of file            } catch (IOException ioe) {                String error = "IOException in "+getName()+". Message is : ";                log.warn(error + ioe);                if ( getMonitor() != null )                    new NetErrorManager(getMonitor(),error + ioe.getMessage());            }        } else {            HSSFRow row;            HSSFCell cell;            double[] array = pattern.getArray();            if (o_sheet.getRow(row_no) == null) {                row = o_sheet.createRow((short) row_no);                            } else {                row = o_sheet.getRow(row_no);                            }            for (int i = 0; i < array.length; ++i) {                if (!(row.getCell((short) (i+startCol)) == null)) {                    row.removeCell(row.getCell((short) (i+startCol))); //remove original cell//                    log.debug("Removing " + row_no + "," + (i+startCol));                }                                cell = row.createCell((short) (i+startCol), 0); // type 0 numeric                                cell.setCellValue((double) array[i]);            }            ++row_no;        }    }        /** Returns the XLS file name used by this synapse.     * @return The XLS file name used by this synapse to output data to.     */    public java.lang.String getFileName() {        return FileName;    }        /** Sets the XLS file name that this synapse should output data to.     * @param fn The XLS file name that this synapse should output data to.     */    public void setFileName(String fn) {        FileName = fn;    }        /** Initialises the data stream. */    private void initOutputStream()    throws IOException {        if (new File(FileName).exists()) {            i_stream = new FileInputStream(FileName);            POIFSFileSystem i_fs = new POIFSFileSystem(i_stream);            workbook = new HSSFWorkbook(i_fs);            i_stream.close(); // handle on workbook has been attained                    } else {            o_stream = new FileOutputStream(FileName); // generate file for later use            workbook = new HSSFWorkbook();            workbook.write(o_stream); // create valid workbook            o_stream.close(); // handle on workbook has been attained                    }        o_sheet_index = workbook.getSheetIndex(o_sheet_name); //find valid sheet        if (o_sheet_index != -1) {            o_sheet = workbook.getSheetAt(o_sheet_index);        } else {            o_sheet = workbook.createSheet(o_sheet_name);        }        row_no = startRow;  // reset count            }        /** Sets the sheet name within the XLS file that this synapse should write data to.     * @param sheetName The sheet name within the XLS file that this synapse should write data to.     */    public void setSheetName(String sheetName) {        o_sheet_name = sheetName;    }        /** Obtains a list of available sheet names from the XLS file.     * @return An array of sheet names found with in the XLS file or null if the file has not     * been read yet.     */    public String[] getAvailableSheetList() {        int sheetCount = workbook.getNumberOfSheets();        String[] availableSheetList = null;        for (int i = 0; i > sheetCount; i++) {            availableSheetList[i] = workbook.getSheetName(i);        }        return availableSheetList;    }        /** Gets the name of sheet within the XLS file that data should be written to.     * @return The name of sheet within the XLS file that data should be written to.     */    public String getSheetName() {        return o_sheet_name;    }    /** Checks and returns any problems found with the settings of this synapse.     * @return A TreeSet of problems or errors found with this synapse.     */    public TreeSet check() {        TreeSet checks = super.check();                if (FileName == null || FileName.trim().equals("")) {            checks.add(new NetCheck(NetCheck.FATAL, "File Name not set." , this));        }                return checks;    }    /** Gets the starting row (0 based) of the XLS sheet.     * @return Starting row (0 based) of the XLS sheet.     */    public int getStartRow(int startRow) {        return startRow;    }    /** Gets the starting col (0 based) of the XLS sheet.     * @return Starting col (0 based) of the XLS sheet.     */    public int getStartCol(int startCol) {        return startCol;    }    /** Set the starting row (0 based) of the XLS sheet.     */    public void setStartRow(int startRow) {        this.startRow = startRow;    }    /** Set the starting col (0 based) of the XLS sheet.     */    public void setStartCol(int startCol) {        this.startCol = startCol;    }    }

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -