在java中使用OutputStream将图像写入特定文件夹

在java中使用OutputStream将图像写入特定文件夹,java,spring-mvc,Java,Spring Mvc,我想将上传的图像写入某个文件夹,但听说第一次尝试时,我想将其写入使用“request.getRealPath(“”)获得的相同路径,在执行程序流后,运行顺利,没有出现任何错误,但我无法找到它写入的图像。。。!。当我通过调试程序进行检查时,我知道了一些我找不到的奇怪路径,即 “/home/Software/workspace/.metadata/.plugins/org.eclipse.wst.server.core/tmp0/wtpwebapps/elibrary/roronoa-zoro-wa

我想将上传的图像写入某个文件夹,但听说第一次尝试时,我想将其写入使用“request.getRealPath(“”)获得的相同路径,在执行程序流后,运行顺利,没有出现任何错误,但我无法找到它写入的图像。。。!。当我通过调试程序进行检查时,我知道了一些我找不到的奇怪路径,即

“/home/Software/workspace/.metadata/.plugins/org.eclipse.wst.server.core/tmp0/wtpwebapps/elibrary/roronoa-zoro-wallps.jpg”

我只能找到“/home/Software/workspace/”和“last=>/elibrary/”是我的项目名称

目前我正在使用SpringMVC3.2

这是我的控制器代码

@RequestMapping(value = "/catalogue/catalogueImageUpload.action",method=RequestMethod.POST)
    public  void getimportedImage(USerDetails uploadItem,HttpServletRequest request) {

        try {

            MultipartFile file = uploadItem.getFileData();

            String fileName = null;

            InputStream inputStream = null;

            OutputStream outputStream = null;

            inputStream = file.getInputStream();

            fileName = request.getRealPath("") + file.getOriginalFilename();

            System.out.println(request.getRealPath("") + file.getOriginalFilename());

            outputStream = new FileOutputStream(file.getOriginalFilename());

            int readBytes = 0;

            byte[] buffer = new byte[40000];


            while ((readBytes = inputStream.read(buffer, 0, 10000)) != -1) {

                outputStream.write(buffer, 0, readBytes);

            }

            outputStream.close();

            inputStream.close();


        } catch (Exception e) {
            e.printStackTrace();
        }
    } 
我想要什么

=>我想在我能够找到的特定文件夹中写入图像,它可能在项目工作空间中,或者任何驱动器中,或者在项目中的某个文件夹中,比如说图像文件夹,好了……现在开始

  • getimportedImage不符合标准命名约定,它应该是getimportedImage

  • 您打开一个文件流进行写入,但不尝试/最终关闭它。如果您的代码失败,可能会导致文件被锁定。(输入流btw相同)

  • 默认情况下,在*nix系统上,名称中带前导“.”的文件/文件夹是隐藏的。您可以在文件资源管理器的位置栏中键入路径的全名,也可以启用隐藏文件(在nautilus中,按ctrl+H)

  • 您应该而不是取决于上传文件的路径,因为您知道它可能是/tmp,由*nix系统自动清除。您应该配置(可能使用适当的默认值)要使用的路径

  • 为什么您的缓冲区有40000字节大,但一次只读取10000字节


您是否已将操作系统设置为显示隐藏文件夹?是的,现在我已删除了请求。getRealPath(“”),现在我可以在eclipse文件夹中找到映像如何仅在项目中写入映像