2010-09-18 95 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