1. 程式人生 > >InputStream與OutputStream的轉化

InputStream與OutputStream的轉化

      專案中有新需求,需要將物件資料儲存成excel,並以檔案流形式上傳到FTP伺服器。由於將excel格式的資料

輸入到輸出流拿到的是輸出流,而ftp上傳的方法需要獲得輸入流物件。這裡就需要將輸出流轉化成輸入流了。下面

是這兩種流的轉化方法。

//新建輸出流
            ByteArrayOutputStream out = new ByteArrayOutputStream();
            //將excel檔案寫入輸出流
            wb.write(out);
            //新建輸入流,注意,將輸出流轉化成byteArray形式,然後就能將輸出流轉化成輸入流
            InputStream excelStream = new ByteArrayInputStream(out.toByteArray());
            //進行FTP上傳
            GeneralFTPUtil.getInstance().storeFile(firmwareDirectory.toString(), fileName, excelStream);
            //拼接下載連結
            firmwareUrl = ftpClientConfigure.getFtpPreUrl()
                    + UploadFileDirectoryType.EXCEL.getDirectory() + fileName;
            out.close();
            wb.close();
            excelStream.close();

注意,輸入和輸出都要用byteArray格式,這樣才能正確進行讀寫。