Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/392.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代码中使用文件路径_Java_Servlets_Filepath - Fatal编程技术网

在Java代码中使用文件路径

在Java代码中使用文件路径,java,servlets,filepath,Java,Servlets,Filepath,我引用了这一点,并创建了一个servlet应用程序 它与代码中提到的TMP_DIR和DEST_DIR路径配合得非常好(我在C drive中创建了一个名为TMP的文件夹,并且在我的应用程序文件夹中创建了一个名为files的文件夹) 现在我将代码转移到一台linux机器上,因为那里没有名为C:there的驱动器,所以这不起作用。我尝试将代码的C:\\tmp替换为/tmp(并创建了一个文件夹tmp)在我的应用程序文件夹中。但它不工作。如何使此代码通用?请告知。用于获取系统相关路径分隔符 编辑: 如果您

我引用了这一点,并创建了一个servlet应用程序

它与代码中提到的TMP_DIR和DEST_DIR路径配合得非常好(我在C drive中创建了一个名为
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