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