0

我正在使用 java fileWriter() 函数。它适用于 Windows 机器,但不适用于 Linux。

所以我想知道 fileWriter() 函数是否仅适用于 Windows 或还有其他问题?

提前致谢

4

3 回答 3

8

我看到过类似的报告,有人说文件 IO 不适用于他们的 Linux。问题几乎总是以他们使用 Windows 的目录路径分隔符而告终。

String filePath = "my\\file\\path\\File.txt"; // only works on windows
String filePath = "my/file/path/File.txt"; // works on all platforms

确保您使用的是后者,它们甚至可以在 Windows 上运行(至少在 Java 中)!

于 2012-06-29T19:35:42.657 回答
3

您指的是 FileWriter 类吗?如果是这样,它在两个系统上的行为都是正确的,如果不是,你将不得不告诉我们 fileWriter() 函数的来源。

于 2012-06-29T19:32:12.827 回答
0

FileWriter 类对两个系统都有效,但请记住 Linux 和 Windows 使用不同的路径约定 - 基于 UNIX 的系统使用正斜杠“/”来分隔目录和文件,而 Windows 使用反斜杠“\”来分隔它们。因此,如果您在标有“home”的目录中有一个名为“file.txt”的文件,在 Linux 中它将是 /home/file.txt,在 Windows 中是 C:\home\file.txt,因为您很可能是在 Windows 上的 C: 驱动器中。

但是,您几乎肯定需要创建 FileWriter 的 File 类具有四个静态字段 - separatorChar、pathSeparatorChar、separator 和 pathSeparator - 它们由您运行的系统确定。例如,在 Linux 上 pathSeparator 是“/”,在 Windows 上是“\”。如果您需要在任一系统中创建文件路径,请参考这些字段(您甚至不需要实例化 File 类型的对象 - 您可以只使用 File.separatorChar,因为该字段是静态的)。

于 2012-06-29T19:40:24.210 回答