java.io输入流怎么转成输出流

时间:2022-01-26 04:46:41

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