为什么File.separator使用了错误的字符?

时间:2013-11-21 15:31:01

标签: path-separator

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

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

但是当在服务器上时,我传递了它并获得“File Not Found”,因为下面的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
  

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

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

1 个答案:

答案 0 :(得分:1)

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

fileName = File.separator + "opt" + File.separator + "Test" + File.separator + "Test.txt";