JAVA二进制文件读写


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

相关内容