按你所说,不知道文件的类型就能打开的话,那文件还要扩展名干什麽?你随便写一个文件(不要扩展名),然后让windows打开,你看看行吗?微软都解决不了,咱就别提了!

解决方案 »

  1.   

    楼上的说得对,或者你自己try,catch就行了
      

  2.   

    这与文件的扩展名没有关系.
    但这是一个"不可能完成的任务". 原因如下:
      writeUTF(..)先写入两个字节的长度,然后是字符本身. writeInt(..)会写入四个字节.并没有类型数据写入.
    用下面的程序,可以看到,第一次打出 ab 156003, 第二次打出 156002 ac(注意,在这种情况下,没有异常).
    因为真正在数组里的是:0  2  97  98  0  2  97  99,
           0 2 97 98解释成字符是ab,解释成数字是156002,
     同理, 0 2 97 99解释成字符是ac,解释成数字是156003. 就看你想把它怎么解释了.
          ...
          dos.writeUTF("ab");
          dos.writeInt(156003);
          bos.flush();
          byte[] content = bos.toByteArray();
           bos.close();
          
          ByteArrayInputStream bis = new java.io.ByteArrayInputStream(content);
          DataInputStream in = new DataInputStream(bis);
          System.out.println(in.readUTF() + " " + in.readInt());
          bis.reset();
          System.out.println(in.readInt() + " " + in.readUTF());