Java读写二进制文件

本文介绍了一个Java程序,该程序演示了如何使用DataInputStream和DataOutputStream来读写二进制文件。程序覆盖了基本数据类型如布尔值、字符、浮点数等的读写操作,并展示了如何处理字符串。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

import java.io.DataInputStream; import java.io.DataOutputStream; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; /* @comany 阿斯达克(深圳)信息技术有限公司 * @author steven.wu * @since 2009.8.11 * @description read and write stream for binary file。 */ 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(); } }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值