java.io輸入流怎麼轉成輸出流
阿新 • • 發佈:2019-02-16
java如何將輸入流InputStream轉成OutputStream或者是直接輸出檔案。
下面有個複製檔案的方法,但是效率慢。大俠們可有其他方法?
/** * 檔案輸入流轉檔案輸出 * * @param inputStream * 檔案輸入流 * @param outputFileName * 檔案輸出路徑 * @return 返回值 * @throws IOException * 異常 */ public static boolean createFileByInputStream(InputStream inputStream, String outputFileName) throws IOException { // 建立資料夾 createDirs(outputFileName); OutputStream out = new FileOutputStream(outputFileName) ; // 判斷輸入或輸出是否準備好 if (inputStream != null && out != null) { int temp = 0; // 開始拷貝 while ((temp = inputStream.read()) != -1) { // 邊讀邊寫 out.write(temp); } // 關閉輸入輸出流 inputStream.close(); out.close(); return true; } else { return false; } } /** * 建立資料夾 * * @param targetZipFilePath * 目標資料夾路徑 */ private static void createDirs(String targetFilePath) { // 將路徑中的/或者\替換成\\ String path = Pattern.compile("[\\/]").matcher(targetFilePath).replaceAll(File.separator); int endIndex = path.lastIndexOf(File.separator); path = path.substring(0, endIndex); File f = new File(path); f.mkdirs(); }