簡體   English   中英

使用JFileChooser將文件類型附加到Java文件中

[英]Appending the file type to a file in Java using JFileChooser

我正在嘗試使用JFileChooser保存圖像。 我只希望用戶能夠將圖像保存為jpg。 但是,如果他們不鍵入.jpg,則不會將其另存為圖像。 有可能以某種方式將“.jpg”附加到文件的末尾嗎?

File file = chooser.getSelectedFile() + ".jpg";  

不起作用,因為我正在向文件添加字符串。

為什么不在完成后將File轉換為String並創建新File

File f = chooser.getSelectedFile();
String filePath = f.getAbsolutePath();
if(!filePath.endsWith(".jpg")) {
    f = new File(filePath + ".jpg");
}

請記住,如果它已經存在,則無需添加.jpg

如果您分兩步執行此操作:將擴展名添加到所選文件,然后創建附加了擴展名的File對象。

String withExtension = chooser.getSelectedFile().getAbsolutePath() + ".jpg";
File file = new File( withExtension )

在您的問題中隱含,但僅涵蓋所有基礎:需要檢查擴展名是否已經存在,例如:

String withExtension = chooser.getSelectedFile().getAbsolutePath();
if( !withExtension.toLowerCase().endsWith( ".jpg" ) )
   withExtension += ".jpg";

[你可能想“.JPEG”添加到if以上-這是為JPEG文件的有效擴展]

以下代碼可能有效,也可能無效。 File有一個toString()允許它編譯,但我寧願使用上面的方法,在那里我可以控制我得到的確切路徑名。 File對象的toString()文檔對於我究竟返回的內容有點不清楚。 在像這樣的情況下,我更喜歡調用一個我知道返回我需要的函數。

File file = new File( chooser.getSelectedFile() + ".jpg" ); 

最好的方法是檢查可接受的條目。 如果找不到,請替換文件exention而不是在其上面書寫。

File f = chooser.getSelectedFile().getAbsolutePath();
String path = f.getAbsolutePath();
if (!path.matches(".*\\.(jpg|jpeg)")) {
    // If the extension isn't there. We need to replace it
    path = path.substring(0, path.lastIndexOf(".") + 1).concat("jpg");
    f = new File(path);
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM