在Windows和Linux操作系统下访问Java应用程序中的外部文件

在Windows和Linux操作系统下访问Java应用程序中的外部文件,java,linux,netbeans,file-io,Java,Linux,Netbeans,File Io,请允许我面对以下问题: 在我的Java程序中,我访问了一些文件,这些文件在windows下的访问方式似乎与Linux不同。例如,如果我想访问与项目位于同一文件夹中的以下文件,我将编写以下代码: 在Linux下:文件操作\u File=new文件(“Data/Operations.txt”) 在Windows下:文件操作\u File=new文件(“Data\\Operations.txt”) 我需要一种在所有操作系统(或至少在这两种操作系统)下都能工作的标准方法。因为编写两个版本的代码一点也不优

请允许我面对以下问题:

在我的Java程序中,我访问了一些文件,这些文件在windows下的访问方式似乎与Linux不同。例如,如果我想访问与项目位于同一文件夹中的以下文件,我将编写以下代码:

在Linux下:
文件操作\u File=new文件(“Data/Operations.txt”)
在Windows下:
文件操作\u File=new文件(“Data\\Operations.txt”)

我需要一种在所有操作系统(或至少在这两种操作系统)下都能工作的标准方法。因为编写两个版本的代码一点也不优雅

我正在操作的两个操作系统是:LinuxMint9和WindowsXP。我在整个项目中都使用了NetBeans 6.9.1


非常感谢你的帮助

File.separator正是用于此目的的

文件f=新文件(“数据”+文件.separator+“Operations.txt”)

不要与File.pathselector混淆,它用于将路径彼此分隔开。例如:

/usr/local/lib:/usr/lib:/var/lib


在上面的示例中,:是路径分隔符(windows使用;作为路径分隔符)。

您还可以创建一个表示目录的
文件和另一个表示该目录中某些内容的
文件,如下所示:

File dataDir = new File("Data");
File operationsFile = new File(dataDir, "Operations.txt");
您也可以跳过目录的
文件
,也可以这样做:

File operationsFile = new File("Data", "Operations.txt");

在Windows下,打印出
Operations文件
将按预期提供
Data\Operations.txt

非常感谢Zeki!完全明白!它现在工作得很好。谢谢你抽出时间。-1:在我看来,使用@ColinD答案中所示的双参数构造函数是一种更好的方法。它的字符串操作不那么复杂如果你有嵌套的文件夹,你仍然需要使用File.separator,所以我认为人们了解它是如何工作的是很重要的。我认为原来的海报让事情变得比实际更简单。