Java读写二进制文件

  1. import java.io.DataInputStream;  
  2. import java.io.DataOutputStream;  
  3. import java.io.File;  
  4. import java.io.FileInputStream;  
  5. import java.io.FileOutputStream;  
  6. import java.io.IOException;  
  7.   
  8.  
  9. public class BinaryReadWrite {  
  10.     private DataInputStream dis=null;  
  11.     private DataOutputStream dos=null;  
  12.     private String s_FilePath="d:/bin.dat";  
  13.     private byte[] m_datapadding = { 0x00 }; //填充空白,以补足字节位数.  
  14.       
  15.     public BinaryReadWrite() {  
  16.         // TODO Auto-generated constructor stub  
  17.         init();  
  18.     }  
  19.     private void init(){  
  20.         try{  
  21.             if(!new File(s_FilePath).exists()){  
  22.                 new File(s_FilePath).createNewFile();  
  23.             }  
  24.             dis=new DataInputStream(new FileInputStream(new File(s_FilePath)));  
  25.             dos=new DataOutputStream(new FileOutputStream(new File(s_FilePath)));  
  26.         }catch(Exception e){  
  27.             e.printStackTrace();  
  28.         }  
  29.     }  
  30.     public void writeBinaryStream(){  
  31.         try{  
  32.             if(dos!=null){  
  33.                 for(int i=0;i<2;i++){  
  34.                     //write boolean value.  
  35.                     dos.writeBoolean(true);  
  36.                     //write a char value.  
  37.                     char c='a';  
  38.                     dos.writeChar((int)c);  
  39.                     Double d=12.567d;  
  40.                     dos.writeDouble(d);  
  41.                     Float f=56.782f;  
  42.                     dos.writeFloat(f);  
  43.                     int k=105;  
  44.                     dos.writeInt(k);  
  45.                     long l=98765l;  
  46.                     dos.writeLong(l);  
  47.                     short st=12;  
  48.                     dos.writeShort(st);  
  49.                     String cs="Java读写二进制文件";  
  50.                     String cs1="二进制文件";  
  51.                     if(i==0){  
  52.                         dos.writeUTF(cs);  
  53.                     }else{  
  54.                         dos.writeUTF(cs1);  
  55.                     }  
  56.                     dos.write(m_datapadding);  
  57.                 }  
  58.                 dos.flush();  
  59.                 dos.close();  
  60.             }  
  61.         }catch(Exception e){  
  62.             e.printStackTrace();  
  63.         }  
  64.     }  
  65.     public void readBinaryStream(){  
  66.         try{  
  67.             if(dis!=null){  
  68.                 while(dis.available()>0){  
  69.                     System.out.println(dis.available());  
  70.                     System.out.println(dis.readBoolean());  
  71.                     char c=(char)dis.readChar();  
  72.                     System.out.println(c);  
  73.                     System.out.println(dis.readDouble());  
  74.                     System.out.println(dis.readFloat());  
  75.                     System.out.println(dis.readInt());  
  76.                     System.out.println(dis.readLong());  
  77.                     System.out.println(dis.readShort());  
  78.                     System.out.println(dis.readUTF());  
  79.                     System.out.println(dis.read(m_datapadding));  
  80.                 }  
  81.             }  
  82.         }catch(Exception e){  
  83.             e.printStackTrace();  
  84.         }  
  85.     }  
  86.     public static void main(String[] args) throws IOException {  
  87.         BinaryReadWrite bin=new BinaryReadWrite();  
  88.         bin.writeBinaryStream();  
  89.         bin.readBinaryStream();  
  90.     }  
  91. }  

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值