Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 将InputStream写入文件_Java_File_Inputstream - Fatal编程技术网

Java 将InputStream写入文件

Java 将InputStream写入文件,java,file,inputstream,Java,File,Inputstream,我有一个对象,在这个对象中我有一个包含文件的InputStream 我想将InputStream中的内容写入文件夹中的文件 我将如何在核心Java中实现这一点 我可以使用BufferedReader和.readLine()打印InputStream的每一行,但是我希望将整个文件写入磁盘,而不仅仅是其中的内容 希望这是有意义的,谢谢。如果您使用的是Java 7或更高版本,您可以使用: InputStream in=obj.getInputStrem(); 路径文件=。。。; 文件。复制(在中,路径

我有一个对象,在这个对象中我有一个包含文件的InputStream

我想将InputStream中的内容写入文件夹中的文件

我将如何在核心Java中实现这一点

我可以使用BufferedReader和.readLine()打印InputStream的每一行,但是我希望将整个文件写入磁盘,而不仅仅是其中的内容


希望这是有意义的,谢谢。

如果您使用的是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
”等等,
eg
C:\\Users\\\\Desktop
eg
MyFolder
请添加您迄今为止尝试过的代码。
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();
    }
}