1. 程式人生 > >java.io輸入流怎麼轉成輸出流

java.io輸入流怎麼轉成輸出流

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();
	}