在Java代码中使用文件路径
我引用了这一点,并创建了一个servlet应用程序 它与代码中提到的TMP_DIR和DEST_DIR路径配合得非常好(我在C drive中创建了一个名为在Java代码中使用文件路径,java,servlets,filepath,Java,Servlets,Filepath,我引用了这一点,并创建了一个servlet应用程序 它与代码中提到的TMP_DIR和DEST_DIR路径配合得非常好(我在C drive中创建了一个名为TMP的文件夹,并且在我的应用程序文件夹中创建了一个名为files的文件夹) 现在我将代码转移到一台linux机器上,因为那里没有名为C:there的驱动器,所以这不起作用。我尝试将代码的C:\\tmp替换为/tmp(并创建了一个文件夹tmp)在我的应用程序文件夹中。但它不工作。如何使此代码通用?请告知。用于获取系统相关路径分隔符 编辑: 如果您
TMP
的文件夹,并且在我的应用程序文件夹中创建了一个名为files
的文件夹)
现在我将代码转移到一台linux机器上,因为那里没有名为C:there的驱动器,所以这不起作用。我尝试将代码的C:\\tmp
替换为/tmp
(并创建了一个文件夹tmp)在我的应用程序文件夹中。但它不工作。如何使此代码通用?请告知。用于获取系统相关路径分隔符
编辑:
如果您只需要一个临时目录,那么使用
示例文件路径:
临时文件示例:
编辑:
在Servlet环境中保存文件:用于获取依赖于系统的路径分隔符
编辑:
如果您只需要一个临时目录,那么使用
示例文件路径:
临时文件示例:
编辑:
在Servlet环境中保存文件:如果您想要的是一个临时目录,请使用并查找getTempDirectory()。这应该可以在任何地方使用 因此,您需要由系统提供的系统临时目录。您可以通过其路径或实际文件获得该目录。(IOUtil提供两种方法)。以下是IOUtil文档: getTempDirectory
public static File getTempDirectory()
Returns a File representing the system temporary directory.
Returns:
the system temporary directory.
所以如果你写:
File myTempFile = IOUtils.getTempDirectory();
然后,myTempFile将是您要写入的位置
如果某个应用程序按名称请求目录,则可以使用getTempDirectoryPath()
这将给出路径名
在你的例子中,我会写:
private static final String TMP_DIR_PATH = IOUtils.getTempDirectoryPath();
或者使用@dogbane的方法:
private static final String TMP_DIR_PATH = System.getProperty("java.io.tmpdir");
我希望他们能给出同样的答案
如果你仍然困惑不解,继续问——这就是为什么如此
更新:如果您正在使用文件做任何事情,那么您应该熟悉Apache的FileUtils和IOUtils。有几件事情JDK做得不好或不自然,Apache提供了更好的支持。如果您想要的是一个临时目录,请使用并查找getTempDirectory()。这应该在任何地方都可以使用 因此,您需要由系统提供的系统临时目录。您可以通过其路径或实际文件获得该目录。(IOUtil提供两种方法)。以下是IOUtil文档: getTempDirectory
public static File getTempDirectory()
Returns a File representing the system temporary directory.
Returns:
the system temporary directory.
所以如果你写:
File myTempFile = IOUtils.getTempDirectory();
然后,myTempFile将是您要写入的位置
如果某个应用程序按名称请求目录,则可以使用getTempDirectoryPath()
这将给出路径名
在你的例子中,我会写:
private static final String TMP_DIR_PATH = IOUtils.getTempDirectoryPath();
或者使用@dogbane的方法:
private static final String TMP_DIR_PATH = System.getProperty("java.io.tmpdir");
我希望他们能给出同样的答案
如果你仍然困惑不解,继续问——这就是为什么如此
更新:如果您正在处理文件,那么有必要熟悉Apache的FileUtils和IOUtils。有几件事JDK做得不好或不自然,Apache提供了更好的支持。用于保存临时文件的平台特定目录的位置由属性
java.io.tmpdir
因此,您可以在代码中使用:
private static final String TMP_DIR_PATH = System.getProperty("java.io.tmpdir")
用于保存临时文件的平台特定目录的位置由属性java.io.tmpdir
定义
因此,您可以在代码中使用:
private static final String TMP_DIR_PATH = System.getProperty("java.io.tmpdir")
在我提到的示例中,我对如何使用这个getTempDirectory()感到非常困惑。你能解释一下吗?我是java初学者…Readcsv.java:29:找不到符号符号:变量IOUtils location:class Readcsv
我在添加IOUtils.getTempDirectoryPath()时遇到这个错误您需要从Apache加载IOUtils类库(请参阅并使用下载)。这应该会给你一个jar,你可以把它放在你的类路径中。当你开发时,试着介绍Maven,因为它会处理这些依赖关系。@peter.murray.rust我尝试了dogbane的方法,它在windows中运行得很好。但是我在linux中遇到了一些问题。请在他的回答中仔细阅读我的评论。当您可以简单地使用JDK的File.createTempFile()?我对如何使用这个getTempDirectory()感到非常困惑在我提到的示例中..你能解释一下吗?我是java初学者…Readcsv.java:29:找不到符号:变量IOUtils location:class Readcsv
我在将IOUtils.gettempredirectorypath()添加到源代码时遇到此错误..你需要从Apache加载IOUtils类库(请参阅并使用下载)。这应该会给你一个jar,你可以把它放在你的类路径中。当你开发时,试着介绍Maven,因为它会处理这些依赖关系。@peter.murray.rust我尝试了dogbane的方法,它在windows中运行得很好。但是我在linux中遇到了一些问题。请在他的回答中仔细阅读我的评论。当您只需使用JDK的File.createTempFile()即可?我的实际任务是读取csv文件中的内容并将其添加到数据库中。当我使用您的代码时,此任务在windows系统中完成得非常完美。但是,当使用linux服务器时,csv文件无法正确读取,结果显示,0项已添加到您的数据库中
其他信息:我正在从windows ma使用linux服务器使用http://192.168.0.85:8080/Readcsv/uploadcsv.jsp
这是在浏览器中。其中85是linux的系统号。我的实际任务是读取csv文件的内容并将其添加到数据库中。当我使用您的代码时,这项任务在windows系统中完成得非常完美。但在linux服务器上使用时,csv文件无法正确读取结果显示,0项已添加到您的数据库中
另一信息:我正在使用windows机器上的linux服务器。使用http://192.168.0.85:8080/Readcsv/uploadcsv.jsp
在浏览器中显示此选项。其中85