[英]java.io.IOException: No such file or directory
我在使用 java 保存/創建文件時遇到問題。
java.io.IOException: No such file or directory
at java.io.UnixFileSystem.createFileExclusively(Native Method) ~[na:1.7.0_79]
我的環境正在使用 Linux,但在 Windows(我嘗試存儲文件的地方)上有一個掛載。 每當我嘗試創建文件名包含中文字符時,它都會出現。
會不會因為 Linux 和 Windows 之間的編碼差異而發生這種情況?
當我嘗試在類似的操作系統中運行和存儲時(在 Linux 中運行應用程序,在 Linux 中存儲,對於 Windows 也是如此)它運行順利。
非常感謝任何幫助。
我用來創建文件的代碼
File imgPath = new File(fullpath.toString());
if (!imgPath.exists()){
FileUtils.forceMkdir(imgPath);
imgPath.setWritable(true, false);
}
fullpath.append(File.separator).append(fileName);
outputStream = new FileOutputStream(new File(fullpath.toString()));
非常感謝。
注意:我是一個相當新的用戶,還不能直接發表評論(目前只能對我的問題和答案發表評論),所以我將其作為答案發布。
Windows 使用 UTF-16 而 Linux 使用 UTF-8; (考慮到您還沒有安裝任何額外的東西來改變任何東西)UTF-8 和 UTF-16 支持相同的字符范圍。 但是,我沒有記錯,它與 memory(UTF-8 從 8 位開始,UTF-16 從 16 位開始?)有關。 無論如何,它們的存儲/讀取方式略有不同。 然后,InputStreamReader 將字符從其指定編碼的外部表示形式轉換為內部表示形式。 在這個 stackoverflow 帖子( UTF-8 和 UTF-16 之間的區別? )中提到了它以字節為單位的確切方式。 它們在基本方面是相同的,但在其他方面卻有所不同,例如漢字。 會建議沿着這條線尋找解決方案(我必須到達 class。),我可能完全錯了。 但這可能是一個很好的起點。 祝你好運。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.