0
我試圖添加功能的一大塊代碼,並與文件分隔符有一個奇怪的問題。在以下代碼中讀取文件時,在我的電腦上工作,但在Linux服務器上時失敗。當PC我通過這一點,它的工作原理:爲什麼File.separator使用錯誤的字符?
fileName = "C:\\Test\\Test.txt";
但是,當一臺服務器上我通過這一點,並得到「找不到文件」,因爲BufferedReader中/的FileReader聲明如下互換「/」爲「\」:
fileName: /opt/Test/Test.txt
找不到文件:java.io.FileNotFoundException:\選擇\測試\ Test.txt的(系統
fileName = "/opt/Test/Test.txt"; System.out.println("fileName: "+fileName); reader = new BufferedReader(new FileReader(new File(fileName)));
當Linux服務器上運行,輸出結果找不到指定的路徑)
當我創建一個簡單的Test.java文件,試圖複製其行爲與預期相同,所以一些在更大的代碼源造成的BufferedReader /的FileReader線表現得好像它在一臺PC,而不是一個Linux機器。任何想法可能是什麼?
我已嘗試...或者更確切地說,由於基目錄從我試圖文件名= fileName.replace一個配置文件(「/」,文件分割符),並且代替「/」與「讀\「在Linux服務器上,這是錯誤的。即使沒有這樣做,BufferedReader/FileReader操作似乎將帶有適當分隔符的文件替換爲「\」,然後嘗試查找文件,然後由於分隔符錯誤而失敗。 – user2137130
原來,這是因爲我將代碼作爲Web Start客戶端運行,所以「\」是正確的文件分隔符,因爲我正在PC上運行客戶端。我試圖訪問服務器上的一個文件,所以必須通過定義的方法來做到這一點。 – user2137130