Java读写二进制文件详解编程语言

 
    import java.io.DataInputStream;   
    import java.io.DataOutputStream;   
    import java.io.File;   
    import java.io.FileInputStream;   
    import java.io.FileOutputStream;   
    import java.io.IOException;   
       
      
    public class BinaryReadWrite {   
        private DataInputStream dis=null;   
        private DataOutputStream dos=null;   
        private String s_FilePath="d:/bin.dat";   
        private byte[] m_datapadding = { 0x00 }; //填充空白,以补足字节位数.   
           
        public BinaryReadWrite() {   
            // TODO Auto-generated constructor stub   
            init();   
        }   
        private void init(){   
            try{   
                if(!new File(s_FilePath).exists()){   
                    new File(s_FilePath).createNewFile();   
                }   
                dis=new DataInputStream(new FileInputStream(new File(s_FilePath)));   
                dos=new DataOutputStream(new FileOutputStream(new File(s_FilePath)));   
            }catch(Exception e){   
                e.printStackTrace();   
            }   
        }   
        public void writeBinaryStream(){   
            try{   
                if(dos!=null){   
                    for(int i=0;i<2;i++){   
                        //write boolean value.   
                        dos.writeBoolean(true);   
                        //write a char value.   
                        char c='a';   
                        dos.writeChar((int)c);   
                        Double d=12.567d;   
                        dos.writeDouble(d);   
                        Float f=56.782f;   
                        dos.writeFloat(f);   
                        int k=105;   
                        dos.writeInt(k);   
                        long l=98765l;   
                        dos.writeLong(l);   
                        short st=12;   
                        dos.writeShort(st);   
                        String cs="Java读写二进制文件";   
                        String cs1="二进制文件";   
                        if(i==0){   
                            dos.writeUTF(cs);   
                        }else{   
                            dos.writeUTF(cs1);   
                        }   
                        dos.write(m_datapadding);   
                    }   
                    dos.flush();   
                    dos.close();   
                }   
            }catch(Exception e){   
                e.printStackTrace();   
            }   
        }   
        public void readBinaryStream(){   
            try{   
                if(dis!=null){   
                    while(dis.available()>0){   
                        System.out.println(dis.available());   
                        System.out.println(dis.readBoolean());   
                        char c=(char)dis.readChar();   
                        System.out.println(c);   
                        System.out.println(dis.readDouble());   
                        System.out.println(dis.readFloat());   
                        System.out.println(dis.readInt());   
                        System.out.println(dis.readLong());   
                        System.out.println(dis.readShort());   
                        System.out.println(dis.readUTF());   
                        System.out.println(dis.read(m_datapadding));   
                    }   
                }   
            }catch(Exception e){   
                e.printStackTrace();   
            }   
        }   
        public static void main(String[] args) throws IOException {   
            BinaryReadWrite bin=new BinaryReadWrite();   
            bin.writeBinaryStream();   
            bin.readBinaryStream();   
        }   
    }  

原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/tech/pnotes/10630.html

(0)
上一篇 2021年7月19日 10:21
下一篇 2021年7月19日 10:21

相关推荐

发表回复

登录后才能评论