Java 下载的文件应该是.png

Java 下载的文件应该是.png,java,samba,downloadfile,Java,Samba,Downloadfile,我不知道我的代码有什么问题,我尝试用sambautil从服务器下载png if (!path.equals("")) { SambaUtil su = new SambaUtil(); byte[] data = su.openfile(path); log.info(path); ByteArrayInputStream inStream = new ByteArrayInputStream(su.openfile(path)); PrintWrite

我不知道我的代码有什么问题,我尝试用sambautil从服务器下载png

if (!path.equals("")) {
    SambaUtil su = new SambaUtil();
    byte[] data = su.openfile(path);
    log.info(path);
    ByteArrayInputStream inStream =  new ByteArrayInputStream(su.openfile(path));
    PrintWriter outStream1  = resp.getWriter();
    int bytes;
    while ((bytes = inStream.read()) != -1) {
        outStream1.write(bytes);
    }

    inStream.close();
    outStream1.close();

}
连接是正确的,但输出数据似乎是错误的


有什么想法吗?

这是因为您正在获取构成.PNG文件的字节并将其打印出来,而不是将其保存为文件,我认为这是您想要做的

而不是

PrintWriter outStream1  = resp.getWriter();
换成这个

OutputStream outStream1 = new FileOutputStream("somefile.png");

然后打开“somefile.png”,您应该能够看到通过Samba下载的图像

为什么要打开两次<代码>su.openfile(路径)你看到溪流乞讨时的字母JFIF了吗?这是因为您下载的图像文件是JPEG,而不是PNG。