JAVA二进制文件读写

转自:http://zoodragon.javaeye.com/blog/509237

  1. /** 
  2. * 二进制读写文件 
  3. */
  4. import java.io.BufferedInputStream;    
  5. import java.io.BufferedOutputStream;    
  6. import java.io.DataInputStream;    
  7. import java.io.DataOutputStream;    
  8. import java.io.FileInputStream;    
  9. import java.io.FileOutputStream;    
  10. public class MainClass    
  11. {    
  12. /** 
  13.      * java.io包中的OutputStream及其子类专门用于写二进制数据。 
  14.      * FileOutputStream是其子类,可用于将二进制数据写入文件。 
  15.      * DataOutputStream是OutputStream的另一个子类,它可以 
  16.      * 连接到一个FileOutputStream上,便于写各种基本数据类型的数据。 
  17.      */
  18. public void writeMethod1()    
  19.     {    
  20.         String fileName="c:/kuka1.dat";    
  21. int value0=255;    
  22. int value1=0;    
  23. int value2=-1;    
  24. try
  25.         {    
  26. //将DataOutputStream与FileOutputStream连接可输出不同类型的数据  
  27. //FileOutputStream类的构造函数负责打开文件kuka.dat,如果文件不存在,  
  28. //则创建一个新的文件,如果文件已存在则用新创建的文件代替。然后FileOutputStream  
  29. //类的对象与一个DataOutputStream对象连接,DataOutputStream类具有写  
  30. //各种数据类型的方法。  
  31.             DataOutputStream out=new DataOutputStream(new FileOutputStream(fileName));    
  32.             out.writeInt(value0);    
  33.             out.writeInt(value1);    
  34.             out.writeInt(value2);    
  35.             out.close();    
  36.         } catch (Exception e)    
  37.         {    
  38.             e.printStackTrace();    
  39.         }    
  40.     }    
  41. //对于大量数据的写入,使用缓冲流BufferedOutputStream类可以提高效率  
  42. public void writeMethod2()    
  43.     {    
  44.         String fileName="c:/kuka2.txt";    
  45. try
  46.         {    
  47.             DataOutputStream out=new DataOutputStream(    
  48. new BufferedOutputStream(    
  49. new FileOutputStream(fileName)));    
  50.             out.writeInt(10);    
  51.             System.out.println(out.size()+" bytes have been written.");    
  52.             out.writeDouble(31.2);    
  53.             System.out.println(out.size()+" bytes have been written.");    
  54.             out.writeBytes("JAVA");    
  55.             System.out.println(out.size()+" bytes have been written.");    
  56.             out.close();    
  57.         } catch (Exception e)    
  58.         {    
  59.             e.printStackTrace();    
  60.         }    
  61.     }    
  62. /** 
  63.      * 对二进制文件比较常见的类有FileInputStream,DataInputStream 
  64.      * BufferedInputStream等。类似于DataOutputStream,DataInputStream 
  65.      * 也提供了很多方法用于读入布尔型、字节、字符、整形、长整形、短整形、 
  66.      * 单精度、双精度等数据。 
  67.      */
  68. public void readMethod1()    
  69.     {    
  70.         String fileName="c:/kuka1.dat";    
  71. int sum=0;    
  72. try
  73.         {    
  74.             DataInputStream in=new DataInputStream(    
  75. new BufferedInputStream(    
  76. new FileInputStream(fileName)));    
  77.             sum+=in.readInt();    
  78.             sum+=in.readInt();    
  79.             sum+=in.readInt();    
  80.             System.out.println("The sum is:"+sum);    
  81.             in.close();    
  82.         } catch (Exception e)    
  83.         {    
  84.             e.printStackTrace();    
  85.         }    
  86.     }    
  87. public void readMethod2()    
  88.     {    
  89. try
  90.         {    
  91.             FileInputStream stream=new FileInputStream("c:/kuka.dat");    
  92. int c;    
  93. while((c=stream.read())!=-1)    
  94.             {    
  95.                 System.out.println(c);    
  96.             }    
  97.         } catch (Exception e)    
  98.         {    
  99.             e.printStackTrace();    
  100.         }    
  101.     }    
  102. }   
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值