我的應用程序拋出異常 - java.io.FileNotFoundException:無效的文件路徑。不知道爲什麼。我已閱讀關於主題的問題和答案,但沒有人能幫助我。無效的文件路徑異常
下面是代碼:
String userhome = System.getProperty("user.home");
String filename = null;
File rdp = null;
for (int item = 0; item < darab; item++) {
filename = toValidFileName(ProgramList.get(item).getP_name());
filename += ".rdp";
rdp = new File(userhome, filename);
try {
JFrame panel;
panel = new JFrame();
panel.setSize(400, 10);
panel.setLocation(300, 400);
panel.setTitle("Saving " + rdp.getAbsolutePath());
try (FileOutputStream fstr = new FileOutputStream(rdp)) {
panel.setVisible(true);
char c;
for (int j = 0; j < 2336; j++) {
c = ProgramList.get(item).p_body.charAt(j);
fstr.write(c);
}
fstr.flush();
fstr.close();
panel.setVisible(false);
}
} catch (IOException ioe) {
JOptionPane.showMessageDialog(this,
ioe.getMessage(), "Save rdp file", JOptionPane.ERROR_MESSAGE);
System.err.println(ioe.getMessage() + " : "+ rdp.getAbsoluteFile());
}
}
而結果: 無效的文件路徑:C:\用戶\梨皮\ CosmicLd.rdp
toValidFilename()從取出禁止字符( KORG RADIAS)程序名稱來創建一個有效的文件名。
我還沒有發現我的錯:( 目標目錄不是隻讀,用戶有必要privilegs當我查看file.canWrite()的行之後: RDP =新的文件(USERHOME,文件名); 它總是假 我做了什麼錯 感謝
如果我選擇了一個由filechooser寫入的文件,那就行了。 –
你會發布堆棧跟蹤和toValidFileName代碼嗎? – efekctive
請使用文件選擇器選擇相同的文件並打印文件名。將名稱與失敗的名稱進行比較。留意空白。 – Arkadiy