Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/apache-spark/5.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 FileOutputStream()能否将相对路径作为参数_Java_Servlets_Fileoutputstream - Fatal编程技术网

Java FileOutputStream()能否将相对路径作为参数

Java FileOutputStream()能否将相对路径作为参数,java,servlets,fileoutputstream,Java,Servlets,Fileoutputstream,我正在创建一个FileOutputStream对象。它将文件或字符串作为其构造函数中的参数 我的问题是,我是否可以给它一个相对URL作为文件位置的参数,它似乎不起作用,但我正在努力弄清楚这是否可行(如果不可行,我将停止尝试) 如果不可能,我如何(从servlet)获得(在文件系统上,而不是逻辑URL上)到当前位置的绝对路径,以便将其传递给构造函数 我的部分问题是,我的dev box是Windows,但我会将其发布到Unix box,因此路径不能相同,即在Windows C:/。。。。在unix/

我正在创建一个FileOutputStream对象。它将文件或字符串作为其构造函数中的参数

我的问题是,我是否可以给它一个相对URL作为文件位置的参数,它似乎不起作用,但我正在努力弄清楚这是否可行(如果不可行,我将停止尝试)

如果不可能,我如何(从servlet)获得(在文件系统上,而不是逻辑URL上)到当前位置的绝对路径,以便将其传递给构造函数

我的部分问题是,我的dev box是Windows,但我会将其发布到Unix box,因此路径不能相同,即在Windows C:/。。。。在unix/usr/…

上,从文件javadoc:

相反,相对路径名必须根据从其他路径名获取的信息进行解释。默认情况下,java.io包中的类总是根据当前用户目录解析相对路径名。该目录由系统属性user.dir命名,通常是调用Java虚拟机的目录

编辑: 波佐是对的,我没有读到这是一个servlet。我同意他的回答:

从文件javadoc:

相反,相对路径名必须根据从其他路径名获取的信息进行解释。默认情况下,java.io包中的类总是根据当前用户目录解析相对路径名。该目录由系统属性user.dir命名,通常是调用Java虚拟机的目录

编辑: 波佐是对的,我没有读到这是一个servlet。我同意他的回答:


应该使用相对路径,但要注意当前目录是什么。例如,如果您正在使用Eclipse,则当前目录是项目目录(而不是包含类的目录)。

应该使用相对路径,但要注意当前目录是什么。例如,如果您使用的是Eclipse,则当前目录是项目目录(而不是包含类的目录)。

可能是指getRealPath而不是getAbsolutePathYes,在评论时修复了它。从手机上回答会给这些错误带来风险。谢谢我用过。。。request.getSession().getServletContext().getRealPath(request.getServletPath())@Ankur:您不需要为此恢复会话。如果您扩展了
HttpServlet
,那么
getServletContext()
方法已经可以使用了!您所需要做的就是
getServletContext().getRealPath(relativeUrl)。可能你是指getRealPath而不是getAbsolutePathYes,在评论时修复了它。从手机上回答会给这些错误带来风险。谢谢我用过。。。request.getSession().getServletContext().getRealPath(request.getServletPath())@Ankur:您不需要为此恢复会话。如果您扩展了
HttpServlet
,那么
getServletContext()
方法已经可以使用了!您所需要做的就是
getServletContext().getRealPath(relativeUrl)。这不是使用ServletsHanks的方法这不是使用ServletsHanks的方法,这很有用。。我用的是eclipseThanks,这很有用。。我正在使用eclipse