同时适用于unix和windows的Java文件名

同时适用于unix和windows的Java文件名,java,unix,file-io,Java,Unix,File Io,我需要打开一个文件(临时文件)并写入一些内容 如何才能使其适用于所有操作系统类型(至少适用于unix和windows) 下面是我目前的代码 每次我想在windows上测试一些东西时,我都会在这些行之间切换(注释/取消注释) 您可以在Java中使用。假设在文件路径中使用“user.home”,则文件将被放置在用户主目录中。你不必在两者之间切换 例: 通过@EJP comment添加另一种方式以避免文件分隔符 File file = new File(System.getProperty("user

我需要打开一个文件(临时文件)并写入一些内容 如何才能使其适用于所有操作系统类型(至少适用于unix和windows)

下面是我目前的代码 每次我想在windows上测试一些东西时,我都会在这些行之间切换(注释/取消注释)

您可以在Java中使用。假设在文件路径中使用
“user.home”
,则文件将被放置在用户主目录中。你不必在两者之间切换

例:

通过@EJP comment添加另一种方式以避免文件分隔符

File file = new File(System.getProperty("user.home"), "Carrier_BackUp_Restore.sql");
您可以在Java中使用。假设在文件路径中使用
“user.home”
,则文件将被放置在用户主目录中。你不必在两者之间切换

例:

通过@EJP comment添加另一种方式以避免文件分隔符

File file = new File(System.getProperty("user.home"), "Carrier_BackUp_Restore.sql");

对于临时文件,您可以让JVM为您选择合适的路径:请参阅。

对于临时文件,您可以让JVM为您选择合适的路径:请参阅。

“我需要打开一个文件(临时文件)并向其写入内容”。 为什么不使用,但请记住文件不是自动删除的,您可以使用或通过选项打开它。如果要手动创建文件,请使用

“我需要打开一个文件(临时文件)并向其中写入内容”。 为什么不使用,但请记住文件不是自动删除的,您可以使用或通过选项打开它。如果要手动创建文件,请使用



使用目录的相对寻址。不要使用
c://
而使用
/
…对于分隔符,只需使用
'/'
。它适用于Java中的所有平台。@EJP虽然大多数主流平台使用或支持
/
作为文件分隔符,但可以说它适用于“所有平台”。
file.separator
常量(或系统属性)是语言和运行时保证的唯一真正可移植的解决方案。请使用目录的相对寻址。不要使用
c://
而使用
/
…对于分隔符,只需使用
'/'
。它适用于Java中的所有平台。@EJP虽然大多数主流平台使用或支持
/
作为文件分隔符,但可以说它适用于“所有平台”。
file.separator
常量(或系统属性)是语言和运行时保证的唯一真正可移植的解决方案。您不需要file.separator属性。您可以使用
File.separator
(参见此处了解原因)@RobAu Done,change。谢谢你的小费!您也不需要它:要么使用
“/”
,要么只编写
新文件(System.getProperty(“user.home”),“Carrier\u BackUp\u Restore.sql”)
。虽然大多数主流平台使用或支持
/
作为文件分隔符,但
文件.separator
常量(或系统属性)是唯一保证在专用平台上也能工作的真正可移植的解决方案。您不需要file.separator属性。您可以使用
file.separator
(参见此处了解原因)@RobAu Done,change。感谢您提供的提示!您不需要这样做:使用
“/”
或只需编写
新文件(System.getProperty)(“user.home”)、“Carrier\u BackUp\u Restore.sql”)
。虽然大多数主流平台使用或支持
/
作为文件分隔符,但
file.separator
常量(或系统属性)是唯一能保证工作的真正可移植的解决方案,即使在专用平台上也是如此。我也尝试过,它确实创建了一个tmp文件。Thanks@Arun很高兴它有帮助。公认的答案是使用java 6风格,我提到的答案是使用java 7。java 7添加了一些很好的特性来处理文件。看看它们,让你的代码更简洁我也试过了,它确实创建了一个tmp文件。Thanks@Arun很高兴它有帮助。公认的答案是使用java 6风格,我提到的答案是使用java 7。java 7添加了一些很好的特性来处理文件。看看它们,让你的代码变得更好
File file = new File(System.getProperty("user.home"), "Carrier_BackUp_Restore.sql");
Paths.get("foo", "somelocation").toFile();