InputStream與OutputStream的轉化
阿新 • • 發佈:2018-11-05
專案中有新需求,需要將物件資料儲存成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格式,這樣才能正確進行讀寫。