日期:2014-05-20  浏览次数:20939 次

java自定义文件格式
求助各位高手,用java怎么自定义文件格式,这个文件只能在自己的程序里进行读写等操作,最好能给个完整点的代码。请高手们教下。。。

------解决方案--------------------
http://topic.csdn.net/u/20090712/09/fd44855e-6300-490a-82b0-6bfbefcfed16.html
------解决方案--------------------
既然存在磁盘上就没法限制其它程序读写,除非在系统权限上做功夫,比如操作系统可以将指定的文件对指定的用户授予权限,这种功能是系统权限的好像所有语言都没有办法处理吧,最多可以对进行数据加密处理。
------解决方案--------------------
探讨

首先:softroad
(cool java深奥得很呢!)
我知道是要自己定义一个文件头,但是不知道怎么入手啊,可以有代码么?
其次:alexandertech
(艾瑞克.泰)
你给的那个链接没用,按那里的方法,得到的文件用TXT照样打开。
最后:waynell
得到的文件并不是不让其他程序打开,但打开只能得到乱码。至于写就没办法了,但是文件主要是不想让别人看,自己备份就好。
……

------解决方案--------------------
呀,这个还真没搞过呀,比如Excel,word等office软件都是微软搞了一个header,然后只有他的程序才能解析相应的文件。
这个规则还是需要你自己来定的,
随便定义,关键就是不让别人轻易读取你文件的内容。
然后用二进制的方式写入,别人打开就是十六进制什么的了。

友情帮顶。
------解决方案--------------------
下面是伪代码:
Java code

public class FileHead {
    /**版本*/
    public static final int VERSION = 0x00000001;
    /**头标志*/
    public static final byte[] FLAG = {'T', 'E', 'S', 'T'};
    /**压缩算法*/
    public int compress = 0x00000003;
}

        //向文件中写头信息
    static void t6(){
        FileHead head = new FileHead();
        OutputStream out = null;
        
        head.compress = 0x04;
        
        out.write(Utility.int2Byte(head.VERSION));
        out.write(head.FLAG);
        out.write(Utility.int2Byte(head.compress));
    }