Java 将InputStream写入文件
我有一个对象,在这个对象中我有一个包含文件的InputStream 我想将InputStream中的内容写入文件夹中的文件 我将如何在核心Java中实现这一点 我可以使用BufferedReader和.readLine()打印InputStream的每一行,但是我希望将整个文件写入磁盘,而不仅仅是其中的内容Java 将InputStream写入文件,java,file,inputstream,Java,File,Inputstream,我有一个对象,在这个对象中我有一个包含文件的InputStream 我想将InputStream中的内容写入文件夹中的文件 我将如何在核心Java中实现这一点 我可以使用BufferedReader和.readLine()打印InputStream的每一行,但是我希望将整个文件写入磁盘,而不仅仅是其中的内容 希望这是有意义的,谢谢。如果您使用的是Java 7或更高版本,您可以使用: InputStream in=obj.getInputStrem(); 路径文件=。。。; 文件。复制(在中,路径
希望这是有意义的,谢谢。如果您使用的是Java 7或更高版本,您可以使用:
InputStream in=obj.getInputStrem();
路径文件=。。。;
文件。复制(在中,路径);
它还支持不同的选项(请参见像和这样的实现)非常肯定它已经存在了,你可以用谷歌搜索它。但当您询问如何写入文件夹内的文件时,假设InputStream变量名为“
input
”:
FileOutputStream输出=null;
试一试{
//创建文件夹(如果它不存在)
文件夹=新文件(“\\”);
如果(!folder.exists()){
folder.mkdirs();
}
//创建输出文件
输出=新文件输出流(新文件(文件夹“”);
//将数据从输入流写入输出文件。
int字节读取=0;
字节[]缓冲区=新字节[4096];
而((bytesRead=input.read(buffer))!=-1){
输出写入(缓冲区,0,字节读取);
}
}捕获(IOException ioex){
ioex.printStackTrace();
}最后{
试一试{
if(输出!=null){
output.close();
}
}捕获(IOException ioex){
ioex.printStackTrace();
}
//如果不再需要,也关闭InputStream。
试一试{
如果(输入!=null){
input.close();
}
}捕获(IOException ioex){
ioex.printStackTrace();
}
}
写入的所有内容是否包括文件图标等。。。还是仅仅是文件的内容?我用谷歌搜索过,但我被这一切弄糊涂了,我已经好几个月没有在这里问过任何问题了。它会写包括图标在内的所有东西,但是:
必须包含图标显示的扩展名,例如文本文件“mytextfile.txt
”或mp3音频文件“song.mp3
”等等,
egC:\\Users\\\\Desktop
和
egMyFolder
请添加您迄今为止尝试过的代码。
FileOutputStream output = null;
try {
// Create folder (if it doesn't already exist)
File folder = new File("<path_to_folder>\\<folder_name>");
if (!folder.exists()) {
folder.mkdirs();
}
// Create output file
output = new FileOutputStream(new File(folder, "<file_name>"));
// Write data from input stream to output file.
int bytesRead = 0;
byte[] buffer = new byte[4096];
while ((bytesRead = input.read(buffer)) != -1) {
output.write(buffer, 0, bytesRead);
}
} catch (IOException ioex) {
ioex.printStackTrace();
} finally {
try {
if (output != null) {
output.close();
}
} catch (IOException ioex) {
ioex.printStackTrace();
}
// Also close InputStream if no longer needed.
try {
if (input != null) {
input.close();
}
} catch (IOException ioex) {
ioex.printStackTrace();
}
}