都知道字节流都是一个个 8位的 Byte
如果我的一个文件里面 有4个 32位的一个 INT 数 那么需要 16个 BYTE 才能装下 假如 我用一个 BYTE数组 来储存这些 INT 值 那么这个数组的长度 就是 16了
问题是 :现在 我把这个 16为的数组 重新输出到一个 文件里面 那么 这个文件怎么知道 我是4个 INT 值 怎么才能还原 我这 4个 INT 而不是还原成 16个BYTE 呢?
请教各位大神给我解释一下

解决方案 »

  1.   

    类似这种从一个文件中 将一些各种类型的数据 转到另外一个文件中  应该怎么处理呢 
    怎么才能让 另外一个文件知道 我这些不同数据的 类型 (因为全部拆成了 一个个 BYTE 了)
      

  2.   

    其实你想的思路没错啦,你这里指的文件仅仅是二进制的集合.它只认识1或0,你给什么,它存什么.你怎么解读是你的事,与它无关
    你说的还原,不是文件会帮你还原,而是你自己的程序按自己的规则解构一个二进制文件而已就像一个网页文件
    notepad会按字符信息来片,所以打开是源码
    而ie则打开是富文本的一种呈现
    如果用winhex之类的16进制打开,则显示16进制的byte
      

  3.   

    这就是文件格式的问题。比如说你规定,该文件前四个byte就是int,那你写入和读取的程序都要遵循这个格式
      

  4.   

    那么 明明是一个 INT 数  他给我解成 4个 BYTE 数 或者 两个 CHAR 我怎么解决 
    我在哪里  去定这个解读的规则呢
      

  5.   

    你这个涉及到协议的知识
    例如,自己设计一个协议来说吧,例如
    某个简单的协议如下:
    编号(int) 名称(string) 长度(long) 这样的内容可以这样存储在一个byte数组中前4个字节带表编号,在程序中使用int类型来编解码,接下来5个字节代表名称,就按字符串来处理这5个字节,最后8个字节代表长度,则按long型读取。推荐楼主看看tcp/ip socket in java这本书,对于网络编程来说,比较薄且非常经典。
      

  6.   

    你读文件的时候你选择是要按照int读还是按照byte读
    文件总是些01011001,之后怎么读是你的事情