在Windows和Linux操作系统下访问Java应用程序中的外部文件
请允许我面对以下问题: 在我的Java程序中,我访问了一些文件,这些文件在windows下的访问方式似乎与Linux不同。例如,如果我想访问与项目位于同一文件夹中的以下文件,我将编写以下代码: 在Linux下:在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”) 我需要一种在所有操作系统(或至少在这两种操作系统)下都能工作的标准方法。因为编写两个版本的代码一点也不优
文件操作\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,所以我认为人们了解它是如何工作的是很重要的。我认为原来的海报让事情变得比实际更简单。