2010-09-18 124 views
0

我正在使用NetBeans(Java Dextop應用程序)開發桌面應用程序,我需要實現我自己的文件格式,該文件格式僅適用於該應用程序。我很不確定我應該先做些什麼。我應該使用哪些代碼,以便我的Java應用程序讀取該文件,並以我想要的方式打開它。創建自己的文件擴展名

+0

您需要保存哪種類型的數據? – dime 2010-09-18 06:48:05

回答

4

如果它的字符數據,使用Reader/Writer。如果是二進制數據,請使用InputStream/OutputStream。而已。它們有幾種口味可供選擇,如BufferdReader,它們可以逐行讀取文本文件等等。

它們是Java IO API的一部分。開始在這裏學習吧:Java IO tutorial

順便說一句,Java本身並不關心文件擴展名或格式。這是您需要編寫的代碼邏輯,以根據某種文件格式規範處理文件的每個字符或字節(如果您想自己創建一個文件,則必須首先編寫文件)。

0

我不知道這直接解決你的問題,但是既然你提到一個自定義的文件格式,值得一提的是,應用程序中使用Java Web Start可以聲明文件關聯啓動。如果用戶雙擊其中一種文件類型,文件名將被傳遞給應用程序的main(String [])。

此功能用於在File Service demo. of the JNLP API - 可以在我的網站。

至於文件的確切格式&加載和保存文件的最佳方式,有大量的可能性可以通過更詳細的信息來縮小範圍。

0

選擇新的/現有的文件擴展名不會影響您的應用程序(或任何情況下的任何人)。這取決於程序員他想讓他的應用讀取哪些文件。

例如,你可以考慮您無法讀取PDF或直接作爲文檔的文本文件....但這並不是因爲它們被寫入/存儲方式不同,而是因爲他們有頁眉或字符,您的應用程序不明白。所以我們可以使用一個插件或擴展來理解那些添加的頭文件(或者說pdf/doc文件的語法),它們可以將它們刪除。&讓我們的應用程序知道它包含的文本(或其他)。

因此,如果您希望包含自己的擴展名,&特別希望其他應用程序無法讀取它,只需以只有您的程序能夠理解的方式編寫文本。儘管用二進制文件編寫文件非常確保您的文件不會直接通過用戶打開文件來讀取,但是仍然可以從中讀取文件,如果它僅僅是原始字符的集合。

如果您隱藏數據問代碼,我會說有很多的算法,您可以使用,通常就會得到標記爲加密導致你基本上是試圖鎖定/隱藏你的東西。所以,如果你不真正關心這個大吼大腦,只是試圖保持一個文件不被直接讀取&成功嘗試讀取該文件不會對您的應用程序造成任何傷害,請將其寫入二進制文件。

+0

那裏有很好的單詞收集,但相關性在哪裏? – cHao 2010-09-18 05:29:32

+0

我相信他說他正在創建一個應用程序,可能給人的感覺是他正在開始創業。我想我是一個嘗試(可能失敗了),讓他明白爲什麼擴展很重要。 – loxxy 2010-09-18 05:35:51

+0

自定義文件格式顯然已經決定做的東西的方式。自定義文件格式通常應該具有自定義擴展名,IMO。沒有提到只有該應用程序可訪問的內容;相反,其含義是數據(處於自定義格式)只能由應用程序理解*可能需要以某種方式註冊格式的擴展,以便操作系統知道這些文件的請求關閉應用程序。 – cHao 2010-09-18 20:10:18