0

我正在尝试向一大段代码添加功能,但文件分隔符有一个奇怪的问题。在我的 PC 上读取以下代码中的文件时,但在 Linux 服务器上时失败。在 PC 上,我通过了它,它可以工作:

fileName = "C:\\Test\\Test.txt";

但是当在服务器上时,我通过它并得到“找不到文件”,因为下面的 BufferedReader/FileReader 语句将“/”交换为“\”:

fileName = "/opt/Test/Test.txt";
System.out.println("fileName: "+fileName);
reader = new BufferedReader(new FileReader(new File(fileName)));

在 LINUX 服务器上运行时产生此输出:

fileName: /opt/Test/Test.txt

File Not Found: java.io.FileNotFoundException: \opt\Test\Test.txt(系统找不到指定的路径)

当我创建一个简单的 Test.java 文件来尝试复制它时,它的行为符合预期,因此较大的代码源中的某些内容导致 BufferedReader/FileReader 行的行为就像它在 PC 上一样,而不是在 Linux 机器上。任何想法可能是什么?

4

1 回答 1

1

我没有看到你在哪里使用 File.separator。试试这个,而不是硬编码路径分隔符。

fileName = File.separator + "opt" + File.separator + "Test" + File.separator + "Test.txt";
于 2013-11-21T16:18:02.640 回答