我正在尝试为大量代码添加功能,并且文件分隔符出现了一个奇怪的问题。在以下代码中读取文件时,在我的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盒子上一样。任何想法可能是什么?
答案 0 :(得分:1)
我没看到你在哪里使用File.separator。试试这个而不是硬编码路径分隔符。
fileName = File.separator + "opt" + File.separator + "Test" + File.separator + "Test.txt";