亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

FileWriter 不使用 URL 中的協議寫入文件

FileWriter 不使用 URL 中的協議寫入文件

慕桂英4014372 2022-12-15 16:37:20
我正在使用下面的代碼寫入文件。FileWriter writer = new FileWriter(outputPath);writer.append(prettyJson);writer.flush();writer.close();我注意到內容沒有寫入以“file://”開頭的文件路徑。這有什么具體原因嗎?
查看完整描述

4 回答

?
楊__羊羊

TA貢獻1943條經驗 獲得超7個贊

當 Java 以 的形式談論文件名時String,文檔通常說

系統相關的文件名

因此它期待一個“日常”文件名,比如filename.ext,或者類似c:\some\path\filename.extWindows 或/some/path/filename.ext類 Unix 的文件名(這個實際上適用于兩者,Java 也接受/Windows 上的路徑分隔符)

對于帶有file://協議的文件名,使用URI并將其包裝成File

FileWriter writer = new FileWriter(new File(new URI(outputPath)));


查看完整回答
反對 回復 2022-12-15
?
暮色呼如

TA貢獻1853條經驗 獲得超9個贊

簡單的。您必須遵守文檔。并且文檔明確指定: https://docs.oracle.com/javase/7/docs/api/java/io/FileWriter.html#FileWriter(java.io.File)

fileName - String The system-dependent filename.

系統依賴意味著:

  • /path/to/file在 Linux / Mac 上

  • C:\path\to\file在 Windows 上

file://不是文件名,而是 URL,最常用于瀏覽器。


查看完整回答
反對 回復 2022-12-15
?
嗶嗶one

TA貢獻1854條經驗 獲得超8個贊

如果您嘗試使用相對路徑,請執行以下操作:

FileWriter fw = new FileWriter("./" + fileName, true);


查看完整回答
反對 回復 2022-12-15
?
慕妹3146593

TA貢獻1820條經驗 獲得超9個贊

javadoc說:

public FileWriter(String fileName) 拋出 IOException

構造一個給定文件名的 FileWriter 對象。

因此:使用接口時,您不能傳遞 URL、URI 或任何合法可以以file://.

換句話說:這按設計工作。此構造函數需要一個簡單明了的文件名。

如果您有類似 URL 的字符串,請嘗試以下操作:

URL fileURL = new URL("file://C:/whatever.txt");InputStream is = fileURL.openStream();

或者簡單地從您獲得的 UIR 創建一個 File 對象。然后將該文件對象傳遞給略有不同的 FileWriter 構造函數。


查看完整回答
反對 回復 2022-12-15
  • 4 回答
  • 0 關注
  • 136 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號